@layer components {
    .dashboard-table-asset {
            align-items: center;
            display: grid;
            gap: 1rem;
            grid-template-columns: auto minmax(0, 1fr);
            max-width: 32rem;
            min-width: 0;
            position: relative;
            width: 100%;
            z-index: 1;
        }

    .dashboard-table-asset__body {
            min-width: 0;
            width: 100%;
        }

    .dashboard-table-asset__name {
            color: var(--dashboard-color-brand);
            font-size: 0.875rem;
            font-weight: 600;
            line-height: 1.25rem;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

    .dashboard-table-asset__meta {
            color: var(--dashboard-color-text-muted);
            font-size: 0.875rem;
            font-weight: 400;
            line-height: 1.25rem;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

    .dashboard-table-bar {
            background: var(--dashboard-color-pill);
            border-radius: var(--dashboard-radius-pill);
            height: 0.375rem;
            margin-top: 0.5rem;
            overflow: hidden;
            width: 100%;
        }

    .dashboard-table-bar__fill {
            background: var(--dashboard-color-brand);
            border-radius: inherit;
            display: block;
            height: 100%;
            min-width: 0.25rem;
        }

    .dashboard-table {
            border-collapse: collapse;
            min-width: 100%;
            width: 100%;
        }

    .dashboard-table--holdings {
            border-collapse: collapse;
            min-width: 100%;
            table-layout: auto;
            width: max-content;
        }

    .dashboard-table--holdings .dashboard-table__head-cell--asset,
        .dashboard-table--holdings .dashboard-table__cell--holdings-asset {
            background: var(--dashboard-color-surface);
            left: 0;
            max-width: 20rem;
            min-width: 16rem;
            position: sticky;
            width: 16rem;
            z-index: 2;
        }

    .dashboard-table--holdings .dashboard-table__head-cell--asset {
            z-index: 3;
        }

    .dashboard-table-wrapper--holdings.dashboard-table-wrapper--scrolled .dashboard-table__cell--holdings-asset {
            box-shadow: 4px 0 8px -2px rgb(15 23 42 / 0.08);
        }

    .dashboard-table--holdings .dashboard-table__head-cell:not(.dashboard-table__head-cell--asset),
        .dashboard-table--holdings .dashboard-table__cell:not(.dashboard-table__cell--holdings-asset) {
            min-width: 7.5rem;
        }

    .dashboard-table--holdings .dashboard-table-heading [data-sortable-key] {
            white-space: nowrap;
        }

    .dashboard-table--holdings .dashboard-table-asset {
            gap: 0.625rem;
        }

    .dashboard-table--holdings .dashboard-table-bar {
            height: 0.25rem;
            margin-top: 0.25rem;
        }

    .portfolio-dashboard .dashboard-table.dashboard-table--holdings td.dashboard-table__cell {
            padding-bottom: 0.5rem;
            padding-left: 0.75rem;
            padding-right: 0.75rem;
            padding-top: 0.5rem;
        }

    .portfolio-dashboard .dashboard-table.dashboard-table--holdings th.dashboard-table__head-cell:not(.dashboard-table__head-cell--asset) {
            padding-left: 0.75rem;
            padding-right: 0.75rem;
        }

    .portfolio-dashboard .dashboard-table.dashboard-table--holdings td.dashboard-table__cell:first-child,
        .portfolio-dashboard .dashboard-table.dashboard-table--holdings th.dashboard-table__head-cell--asset {
            padding-left: var(--dashboard-section-padding-x);
        }

    .portfolio-dashboard .dashboard-table.dashboard-table--holdings td.dashboard-table__cell:last-child,
        .portfolio-dashboard .dashboard-table.dashboard-table--holdings th.dashboard-table__head-cell:last-child {
            padding-right: var(--dashboard-section-padding-x);
        }

    .dashboard-table--holdings .dashboard-table__cell {
            padding-bottom: 0.5rem;
            padding-left: 0.75rem;
            padding-right: 0.75rem;
            padding-top: 0.5rem;
        }

    .dashboard-table--holdings .dashboard-table__head-cell:not(.dashboard-table__head-cell--asset) {
            padding-left: 0.75rem;
            padding-right: 0.75rem;
        }

    .dashboard-table--holdings .dashboard-table__cell:first-child,
        .dashboard-table--holdings .dashboard-table__head-cell--asset {
            padding-left: var(--dashboard-section-padding-x);
        }

    .dashboard-table--holdings .dashboard-table__cell:last-child,
        .dashboard-table--holdings .dashboard-table__head-cell:last-child {
            padding-right: var(--dashboard-section-padding-x);
        }

    .dashboard-table--holdings .dashboard-table__head-cell--right [data-sortable-key] {
            display: block;
            position: relative;
            width: 100%;
        }

    .dashboard-table--holdings .dashboard-table__head-cell--right [data-sortable-key] > div {
            justify-content: flex-end;
            position: relative;
            width: 100%;
        }

    .dashboard-table--holdings .dashboard-table__head-cell--right [data-sortable-key] .dashboard-table__sort-icon {
            margin-left: 0;
            position: absolute;
            right: 0;
            top: 50%;
            transform: translateY(-50%);
        }

    .dashboard-table--holdings .dashboard-table__subvalue {
            line-height: 1rem;
        }

    .dashboard-table-scroll--holdings {
            max-width: 100%;
            min-width: 0;
            overflow: hidden;
            padding-bottom: 1rem;
            position: relative;
            width: 100%;
        }

    .dashboard-table-scroll--holdings::before,
        .dashboard-table-scroll--holdings::after {
            bottom: 1.75rem;
            content: "";
            pointer-events: none;
            position: absolute;
            top: 0;
            width: 2.25rem;
            z-index: 4;
        }

    .dashboard-table-scroll--holdings::before {
            background: linear-gradient(to right, var(--dashboard-color-surface), transparent);
            left: 16rem;
            opacity: var(--dashboard-table-scroll-left-opacity, 0);
        }

    .dashboard-table-scroll--holdings::after {
            background: linear-gradient(to left, var(--dashboard-color-surface), transparent);
            opacity: var(--dashboard-table-scroll-right-opacity, 0);
            right: 0;
        }

    .dashboard-table-scroll--holdings.dashboard-table-scroll--no-scroll::before,
        .dashboard-table-scroll--holdings.dashboard-table-scroll--no-scroll::after {
            opacity: 0;
        }

    .dashboard-table-wrapper--holdings {
            position: relative;
        }

    .dashboard-table-wrapper.dashboard-table-wrapper--holdings {
            overscroll-behavior-x: none;
        }

    .dashboard-table-scroll--no-scroll .dashboard-table-wrapper--holdings {
            overflow-x: hidden;
        }

    .dashboard-table-wrapper {
            max-width: 100%;
            min-width: 0;
            overscroll-behavior-x: contain;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            width: 100%;
        }

    .dashboard-table-wrapper--grow {
            flex: 1 1 auto;
        }

    .dashboard-table__body {
            font-size: 0.875rem;
        }

    .dashboard-table__body > tr + tr {
            border-top: 1px solid var(--dashboard-color-border);
        }

    .dashboard-table__head-cell {
            line-height: 1rem;
            padding: 1.25rem var(--dashboard-section-padding-x);
        }

    .dashboard-table__head-cell--left {
            text-align: left;
        }

    .dashboard-table__head-cell--right {
            text-align: right;
        }

    .dashboard-table__head-line--right {
            text-align: right;
        }

    .dashboard-table__cell {
            color: var(--dashboard-color-text);
            line-height: 1.25rem;
            padding: 1rem var(--dashboard-section-padding-x);
            vertical-align: middle;
        }

    .dashboard-table__cell--asset {
            position: relative;
        }

    .dashboard-table__head-cell--asset,
        .dashboard-table__cell--holdings-asset {
            min-width: 14rem;
            width: 16rem;
        }

    .dashboard-table__cell--numeric {
            text-align: right;
            white-space: nowrap;
        }

    .dashboard-table__cell--left {
            text-align: left;
        }

    .dashboard-table__cell--muted {
            color: var(--dashboard-color-text-muted);
        }

    .dashboard-table__cell--positive {
            color: var(--dashboard-color-positive);
        }

    .dashboard-table__cell--negative {
            color: var(--dashboard-color-negative);
        }

    .dashboard-table__cell--center {
            text-align: center;
        }

    .dashboard-table__cell--compact {
            padding-left: 0.5rem;
            padding-right: 0.5rem;
        }

    .dashboard-table__cell--total {
            border-top: 1px solid var(--dashboard-color-border);
        }

    .dashboard-table__value {
            line-height: 1.25rem;
        }

    .dashboard-table__value--medium {
            font-weight: 600;
        }

    .dashboard-table--fixed {
            table-layout: fixed;
            width: 100%;
        }

    .dashboard-table__subvalue {
            color: var(--dashboard-color-text-muted);
            font-size: 0.875rem;
            line-height: 1.25rem;
        }

    .dashboard-table__inline-end {
            align-items: center;
            display: flex;
            flex-wrap: nowrap;
            gap: 0.5rem;
            height: 100%;
            justify-content: flex-end;
        }

    .dashboard-table__inline-start {
            align-items: center;
            display: flex;
            min-width: 0;
        }

    .dashboard-table__stack {
            display: grid;
            gap: 0.5rem;
        }

    .dashboard-table__truncated {
            max-width: 20rem;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

    .dashboard-table__action-cell {
            padding-left: 0.5rem;
            padding-right: var(--dashboard-section-padding-x);
            text-align: right;
            white-space: nowrap;
        }

    .dashboard-table__icon {
            color: var(--dashboard-color-text-muted);
            display: block;
            height: 1rem;
            width: 1rem;
        }

    .dashboard-table__icon--warning {
            color: #f97316;
        }

    .dashboard-table__icon-action {
            align-items: center;
            background: transparent;
            border: 0;
            color: var(--dashboard-color-text-muted);
            cursor: pointer;
            display: inline-flex;
            justify-content: center;
            padding: 0;
        }

    .dashboard-table__icon-action:hover {
            color: var(--dashboard-color-text);
        }

    .dashboard-table-column-menu {
            display: inline-block;
            position: relative;
        }

    .dashboard-table-column-menu__menu {
            background: #fff;
            border: 1px solid var(--dashboard-color-border);
            border-radius: var(--dashboard-radius-sm);
            box-shadow: 0 10px 15px -3px rgb(15 23 42 / 0.1), 0 4px 6px -4px rgb(15 23 42 / 0.1);
            color: var(--dashboard-color-text-muted);
            margin-top: 0.5rem;
            padding: 1.25rem;
            position: absolute;
            right: 0;
            z-index: 20;
        }

    .dashboard-table-asset__name--muted {
            color: var(--dashboard-color-text);
        }

    .dashboard-table-badge {
            border-radius: var(--dashboard-radius-pill);
            display: inline-flex;
            font-size: 0.75rem;
            font-weight: 400;
            line-height: 1.25rem;
            padding: 0 0.5rem;
            white-space: nowrap;
        }

    .dashboard-table-badge--blue {
            background: oklch(96% 0.05 264);
            color: oklch(60% 0.16 264);
        }

    .dashboard-table-badge--green {
            background: oklch(96% 0.05 155);
            color: oklch(60% 0.16 155);
        }

    .dashboard-table-badge--gray {
            background: oklch(96% 0.015 260);
            color: oklch(52% 0.03 260);
        }

    .dashboard-table-badge--orange {
            background: oklch(96% 0.05 55);
            color: oklch(60% 0.17 50);
        }

    .dashboard-table-badge--red {
            background: oklch(96% 0.045 25);
            color: oklch(60% 0.17 25);
        }

    .dashboard-table-badge--yellow {
            background: oklch(96% 0.05 85);
            color: oklch(60% 0.16 75);
        }

    .dashboard-table__sort-icon {
            flex-shrink: 0;
            height: 0.75rem;
            margin-left: 0.5rem;
            width: 0.75rem;
        }

    .dashboard-table__head-cell--right [data-sortable-key] > div {
            padding-right: 1rem;
            position: relative;
        }

    .dashboard-table__head-cell--right [data-sortable-key] .dashboard-table__sort-icon {
            margin-left: 0;
            position: absolute;
            right: 0;
            top: 50%;
            transform: translateY(-50%);
        }

    .dashboard-table-heading {
            border-bottom: 1px solid var(--dashboard-color-border);
            color: var(--dashboard-color-text-muted);
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 0;
            text-transform: uppercase;
        }

    @media (min-width: 48rem) {
        .dashboard-table__head-cell,
                .dashboard-table__cell {
                    padding-left: var(--dashboard-section-padding-x-lg);
                    padding-right: var(--dashboard-section-padding-x-lg);
                }

        .dashboard-table__cell--compact {
                    padding-left: 0.5rem;
                    padding-right: 0.5rem;
                }

        .dashboard-table__head-cell:first-child,
                .dashboard-table__cell:first-child {
                    padding-left: var(--dashboard-section-padding-x-lg);
                }

        .dashboard-table__head-cell:last-child,
                .dashboard-table__cell:last-child,
                .dashboard-table__action-cell {
                    padding-right: var(--dashboard-section-padding-x-lg);
                }

        .dashboard-table--holdings .dashboard-table__head-cell:not(.dashboard-table__head-cell--asset),
                .portfolio-dashboard .dashboard-table.dashboard-table--holdings th.dashboard-table__head-cell:not(.dashboard-table__head-cell--asset) {
                    padding-left: 0.75rem;
                    padding-right: 0.75rem;
                }

        .dashboard-table--holdings .dashboard-table__cell:not(.dashboard-table__cell--holdings-asset),
                .portfolio-dashboard .dashboard-table.dashboard-table--holdings td.dashboard-table__cell:not(.dashboard-table__cell--holdings-asset) {
                    padding-left: 0.75rem;
                    padding-right: 0.75rem;
                }

        .dashboard-table--holdings .dashboard-table__cell:first-child,
                .dashboard-table--holdings .dashboard-table__head-cell--asset,
                .portfolio-dashboard .dashboard-table.dashboard-table--holdings td.dashboard-table__cell:first-child,
                .portfolio-dashboard .dashboard-table.dashboard-table--holdings th.dashboard-table__head-cell--asset {
                    padding-left: var(--dashboard-section-padding-x-lg);
                }

        .dashboard-table--holdings .dashboard-table__cell:last-child,
                .dashboard-table--holdings .dashboard-table__head-cell:last-child,
                .portfolio-dashboard .dashboard-table.dashboard-table--holdings td.dashboard-table__cell:last-child,
                .portfolio-dashboard .dashboard-table.dashboard-table--holdings th.dashboard-table__head-cell:last-child {
                    padding-right: var(--dashboard-section-padding-x-lg);
                }
    }
}
