/* Relation-manager tabs: daisyUI tabs-border, left-aligned, white menu bar only.
 * Filament assigns absolute ids like "content.relationManagerTabs" (use [id$=...]).
 */
.fi-resource-view-record-page .fi-sc-tabs[id$="relationManagerTabs"],
.fi-resource-edit-record-page .fi-sc-tabs[id$="relationManagerTabs"],
.fi-page.fi-resource-view-record-page .fi-sc-tabs[id$="relationManagerTabs"],
.fi-page.fi-resource-edit-record-page .fi-sc-tabs[id$="relationManagerTabs"],
.fi-sc-tabs[id$="relationManagerTabs"] {
    width: 100%;
    max-width: none;
    background: transparent;
}

/* Tab panels (Sites/Products tables) stay on page canvas — not white */
.fi-sc-tabs[id$="relationManagerTabs"] > .fi-sc-tabs-tab {
    background: transparent !important;
}

.fi-resource-view-record-page .fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs,
.fi-resource-edit-record-page .fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs,
.fi-page.fi-resource-view-record-page .fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs,
.fi-page.fi-resource-edit-record-page .fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs,
.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs:not(.fi-contained) {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    justify-content: flex-start !important;
    align-items: stretch;
    gap: 0;
    padding: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
    --tw-shadow: 0 0 #0000 !important;
    border-bottom: 1px solid var(--color-base-300, #e5e7eb) !important;
    overflow-x: auto;
}

.dark .fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs:not(.fi-contained),
html.dark .fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs:not(.fi-contained) {
    border-bottom-color: var(--color-base-300, #374151) !important;
}

/* daisyUI tabs-border: bottom accent on active tab */
.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs .fi-tabs-item {
    position: relative;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 0.75rem 1rem;
    box-shadow: none !important;
}

.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs .fi-tabs-item:hover,
.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs .fi-tabs-item:focus-visible {
    background: transparent !important;
}

.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs .fi-tabs-item.fi-active {
    background: transparent !important;
}

.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs .fi-tabs-item.fi-active::after {
    content: "";
    position: absolute;
    left: 0.75rem;
    right: 0.75rem;
    bottom: 0;
    height: 3px;
    border-radius: 9999px;
    background-color: var(--color-primary, #51bc8f);
}

.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs .fi-tabs-item.fi-active .fi-tabs-item-label,
.fi-sc-tabs[id$="relationManagerTabs"] > .fi-tabs .fi-tabs-item.fi-active > .fi-icon {
    color: var(--color-primary, #51bc8f);
}

/* High-density form sections (b2b-saas-ux-architect) */
.fi-sc-section .fi-section.fi-compact:not(.fi-aside):not(.fi-section-not-contained) > .fi-section-header {
    padding-block: 0.5rem;
    padding-inline: 0.75rem;
}

.fi-sc-section .fi-section.fi-compact:not(.fi-divided):not(.fi-aside):not(.fi-section-not-contained) > .fi-section-content-ctn > .fi-section-content {
    padding: 0.75rem;
}

.fi-sc-section .fi-section.fi-compact .fi-section-content {
    row-gap: 0.75rem;
    column-gap: 1rem;
}

/* Table column titles — uppercase across Admin + App Filament tables.
 * Sortable labels live inside .fi-ta-header-cell-sort-btn (buttons often
 * reset text-transform and do not inherit from the <th>). */
.fi-ta-header-cell,
.fi-ta-header-cell .fi-ta-header-cell-sort-btn,
.fi-ta-header-cell .fi-ta-header-cell-tooltip,
.fi-ta-header-group-cell,
.fi-ta-table-stacked-header-cell {
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Condensed table rows (Filament default cell padding is py-4). */
.fi-ta-header-cell {
    padding-block: 0.5rem;
}

.fi-ta-cell:has(.fi-ta-actions),
.fi-ta-cell:has(.fi-ta-record-checkbox),
.fi-ta-selection-cell,
.fi-ta-summary-row-heading-cell {
    padding-block: 0.375rem !important;
}

.fi-ta-text,
.fi-ta-icon,
.fi-ta-image,
.fi-ta-color,
.fi-ta-checkbox,
.fi-ta-toggle,
.fi-ta-select,
.fi-ta-text-input,
.fi-ta-text-summary,
.fi-ta-icon-count-summary,
.fi-ta-range-summary,
.fi-ta-values-summary {
    padding-block: 0.375rem !important;
}

.fi-ta-actions {
    gap: 0.5rem;
}

@media (min-width: 640px) {
    .fi-ta-table > tbody > tr > .fi-ta-selection-cell {
        padding-block: 0.375rem !important;
    }

    .fi-ta-text,
    .fi-ta-icon,
    .fi-ta-image,
    .fi-ta-color,
    .fi-ta-checkbox,
    .fi-ta-toggle,
    .fi-ta-select,
    .fi-ta-text-input {
        padding-block: 0.375rem !important;
    }
}

/* EPCIS document Summary metrics (infolist content on Summary tab).
 * Equal height only for horizontal siblings (md+). No nested card chrome. */
.tp-epcis-document-summary {
    width: 100%;
}

.tp-epcis-document-summary__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    /* Stacked: natural height per block. */
    align-items: start;
}

.tp-epcis-document-summary__entry {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

@media (min-width: 768px) {
    .tp-epcis-document-summary__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 1rem;
        row-gap: 0.75rem;
        /* Same row only: match tallest horizontal sibling. */
        align-items: stretch;
    }

    .tp-epcis-document-summary__entry {
        height: 100%;
    }

    .tp-epcis-document-summary__chips,
    .tp-epcis-document-summary__items-detail,
    .tp-epcis-document-summary__empty {
        margin-top: auto;
    }
}

.tp-epcis-document-summary__label {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.5rem;
    color: var(--gray-950, #030712);
}

.dark .tp-epcis-document-summary__label,
html.dark .tp-epcis-document-summary__label {
    color: #fff;
}

.tp-epcis-document-summary__metric {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.025em;
    color: var(--gray-950, #030712);
}

.dark .tp-epcis-document-summary__metric,
html.dark .tp-epcis-document-summary__metric {
    color: #fff;
}

.tp-epcis-document-summary__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.tp-epcis-document-summary__chip {
    display: inline-flex;
    align-items: center;
    border-radius: 0.375rem;
    background: var(--gray-100, #f3f4f6);
    padding: 0.125rem 0.5rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.75rem;
    line-height: 1.25rem;
    color: var(--gray-800, #1f2937);
}

.dark .tp-epcis-document-summary__chip,
html.dark .tp-epcis-document-summary__chip {
    background: var(--gray-800, #1f2937);
    color: var(--gray-100, #f3f4f6);
}

.tp-epcis-document-summary__items-detail {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.tp-epcis-document-summary__subline {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--gray-700, #374151);
}

.dark .tp-epcis-document-summary__subline,
html.dark .tp-epcis-document-summary__subline {
    color: var(--gray-200, #e5e7eb);
}

.tp-epcis-document-summary__hint,
.tp-epcis-document-summary__empty {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1rem;
    color: var(--gray-500, #6b7280);
}

.tp-epcis-document-summary__empty {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.tp-epcis-document-summary__parties {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.tp-epcis-document-summary__parties-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 768px) {
    .tp-epcis-document-summary__parties-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 1rem;
        row-gap: 0.75rem;
    }
}

.tp-epcis-document-summary__party {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.tp-epcis-document-summary__party-name {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem;
    color: var(--gray-950, #030712);
}

.dark .tp-epcis-document-summary__party-name,
html.dark .tp-epcis-document-summary__party-name {
    color: #fff;
}

.tp-epcis-document-summary__party-gln {
    display: inline-flex;
    align-self: flex-start;
    border-radius: 0.375rem;
    background: var(--gray-100, #f3f4f6);
    padding: 0.125rem 0.5rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.75rem;
    line-height: 1.25rem;
    color: var(--gray-800, #1f2937);
}

.dark .tp-epcis-document-summary__party-gln,
html.dark .tp-epcis-document-summary__party-gln {
    background: var(--gray-800, #1f2937);
    color: var(--gray-100, #f3f4f6);
}

.tp-epcis-document-summary__party-badge {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    border-radius: 9999px;
    background: var(--gray-100, #f3f4f6);
    padding: 0.125rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.25rem;
    color: var(--gray-700, #374151);
}

.dark .tp-epcis-document-summary__party-badge,
html.dark .tp-epcis-document-summary__party-badge {
    background: var(--gray-800, #1f2937);
    color: var(--gray-200, #e5e7eb);
}

/*
 * EPCIS Summary: equal-height section pairs on the root infolist grid
 * (Shipment|Transactions, DSCSA|File details). Exclude .fi-section-content
 * so nested field grids inside sections are unchanged. Stacked (1 col) rows
 * keep natural heights.
 */
.fi-resource-view-record-page .fi-sc.fi-grid:not(.fi-section-content) {
    align-items: stretch;
}

.fi-resource-view-record-page .fi-sc.fi-grid:not(.fi-section-content) > .fi-grid-col {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.fi-resource-view-record-page .fi-sc.fi-grid:not(.fi-section-content) > .fi-grid-col > .fi-sc-component {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 100%;
    height: 100%;
}

.fi-resource-view-record-page .fi-sc.fi-grid:not(.fi-section-content) > .fi-grid-col .fi-sc-section {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
}

.fi-resource-view-record-page .fi-sc.fi-grid:not(.fi-section-content) > .fi-grid-col .fi-section {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
}

.fi-resource-view-record-page .fi-sc.fi-grid:not(.fi-section-content) > .fi-grid-col .fi-section-content-ctn {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

/* Asset Tracking: Map | Timeline — theme build lacks md:grid-cols-2 / order utilities */
[data-tp-tracking-grid] {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr);
}

[data-tp-tracking-grid] > [data-tp-tracking-map] {
    order: 2;
}

[data-tp-tracking-grid] > [data-tp-tracking-timeline] {
    order: 1;
}

@media (min-width: 768px) {
    [data-tp-tracking-grid] {
        grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    }

    [data-tp-tracking-grid] > [data-tp-tracking-map] {
        order: 1;
    }

    [data-tp-tracking-grid] > [data-tp-tracking-timeline] {
        order: 2;
    }
}

[data-tp-tracking-grid] [data-tp-tracking-map-panel] {
    height: 20rem;
    width: 100%;
}

@media (min-width: 768px) {
    [data-tp-tracking-grid] [data-tp-tracking-map-panel] {
        height: 28rem;
    }
}

/* Asset Tracking timeline cards — theme build lacks gap-3 / gap-x-2 / rounded-lg / border-base-200 */
[data-tp-timeline-cards] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

[data-tp-timeline-card] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--color-base-300, #e5e7eb);
    border-radius: 0.5rem;
    background: var(--color-base-100, #ffffff);
}

[data-tp-timeline-field] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

[data-tp-timeline-field] > [data-tp-timeline-label] {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    opacity: 0.6;
}

/* Settings Hub — theme build lacks sm:grid-cols-2 / xl:grid-cols-3 / gap-6 / progress utilities */
[data-tp-settings-hub] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

[data-tp-settings-progress] {
    height: 0.5rem;
    width: 100%;
    overflow: hidden;
    border-radius: 9999px;
    background: var(--color-base-200, #e5e7eb);
}

[data-tp-settings-progress-bar] {
    height: 100%;
    border-radius: 9999px;
    background: var(--color-primary, #51bc8f);
    transition: width 0.2s ease;
}

[data-tp-settings-card-grid] {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 640px) {
    [data-tp-settings-card-grid] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    [data-tp-settings-card-grid] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

[data-tp-settings-card] {
    display: block;
    border: 1px solid var(--color-base-300, #aeb2b9);
    border-radius: var(--radius-box, 0.5rem);
    background: color-mix(in oklab, var(--color-base-200, #e3e5ea) 60%, transparent);
    padding: 1rem;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

[data-tp-settings-card]:hover {
    border-color: color-mix(in oklab, var(--color-primary, #51bc8f) 40%, var(--color-base-300, #aeb2b9));
    background: var(--color-base-200, #e3e5ea);
}

[data-tp-settings-card]:focus-visible {
    outline: 2px solid var(--color-primary, #51bc8f);
    outline-offset: 2px;
}

/* Checklist: theme lacks gap-3; daisy menu also collapses flex gaps */
[data-tp-settings-hub] [data-tp-settings-checklist] > li > [data-tp-settings-checklist-row] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
}

@media (min-width: 640px) {
    [data-tp-settings-hub] [data-tp-settings-checklist] > li > [data-tp-settings-checklist-row] {
        flex-direction: row;
        align-items: center;
    }
}

[data-tp-settings-hub] [data-tp-settings-checklist-label] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

[data-tp-settings-hub] [data-tp-settings-checklist-label] > .badge {
    flex-shrink: 0;
    margin-top: 0.125rem;
}

/* Barcode scan fields — theme build may omit px-3 / min-h-14 / rounded-lg.
 * Use !important + longhands so preflight/utilities cannot collapse horizontal pad. */
.tp-scan-input,
#scan-input,
#floor-scan-input,
#hub-scan-input,
#verify-scan-input,
#asset-tracking-scan-input {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    min-height: 3.5rem; /* min-h-14 */
    border-radius: 0.5rem; /* rounded-lg */
}

.tp-scan-input--macro {
    min-height: 4rem; /* min-h-16 */
    font-size: 1.125rem;
}

.tp-scanner-macro-btn {
    display: flex;
    min-height: 3.5rem; /* min-h-14 */
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-weight: 700;
}

.tp-scanner-macro-btn--neutral {
    border: 1px solid oklch(var(--bc) / 0.2);
}

.tp-scan-flash {
    opacity: 0.4;
}

.tp-scan-flash--success {
    background-color: oklch(var(--su));
}

.tp-scan-flash--error {
    background-color: oklch(var(--er));
}

.tp-scan-qty {
    font-weight: 700;
    letter-spacing: -0.025em;
}

.scanner-page-shell {
    padding-bottom: 1.5rem;
}
