.tabs-layout {
    display: flex;
    align-items: stretch;
    gap: 2rem;
}

.tabs {
    width: 12rem;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-right: 1rem;
    border-right: 1px solid var(--border);
}

    .tabs .btn,
    .subtabs .btn {
        box-sizing: border-box;
        min-height: 0;
        line-height: 1.35;
        text-align: left;
    }

        .tabs .btn:hover {
            opacity: 100%;
        }

        .tabs .btn svg {
            opacity: 75%;
        }

        .tabs .btn span {
            flex: 1;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .tabs .btn .badge {
            flex: none;
        }

        .tabs .btn[data-tab-active] {
            background: #ffffff25;
            opacity: 100%;
        }

            .tabs .btn[data-tab-active]:hover {
                background: color-mix(in srgb, #ffffff25, #fff 10%);
            }

            .tabs .btn[data-tab-active]:active {
                background: color-mix(in srgb, #ffffff25, #000 10%);
            }

.tabpanes section {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.tabs-layout > .tabpanes {
    flex: 1;
    min-width: 0;
}

.rows {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

    .rows.divided > * + * {
        border-top: 1px solid var(--border);
        padding-top: 0.6rem;
    }

.missing {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

    .missing h1 {
        font-size: 1.75rem;
        letter-spacing: -0.02em;
        margin: 0;
    }

textarea {
    resize: vertical;
}

@media (width < 40rem) {
    .tabs-layout {
        flex-direction: column;
    }

    .tabs {
        width: 100%;
        flex-direction: row;
        padding-right: 0;
        border-right: none;
        overflow-x: auto;
    }

        .tabs .btn {
            width: auto;
            white-space: nowrap;
        }

    :is(.tabs, .subtabs).segmented {
        overflow-x: auto;
        scrollbar-width: none;
        gap: 0;
        border-bottom: 1px solid var(--border);
    }

        :is(.tabs, .subtabs).segmented::-webkit-scrollbar {
            display: none;
        }

        :is(.tabs, .subtabs).segmented .btn {
            flex: 1 0 auto;
            justify-content: center;
            border-radius: 0;
            position: relative;
            opacity: 100%;
            padding: 0.65rem 0.5rem;
        }

            :is(.tabs, .subtabs).segmented .btn span {
                flex: none;
            }

            :is(.tabs, .subtabs).segmented .btn::after {
                content: "";
                position: absolute;
                left: 0.75rem;
                right: 0.75rem;
                bottom: 0;
                height: 2px;
                border-radius: 999px;
                background: var(--foreground);
                transform: scaleX(0);
                transition: transform 200ms ease-out;
            }

            :is(.tabs, .subtabs).segmented .btn[data-tab-active]::after,
            :is(.tabs, .subtabs).segmented .btn[data-subtab-active]::after {
                transform: scaleX(1);
            }
}

[data-theme="light"] .tabs .btn[data-tab-active] {
    background: #00000012;
}

    [data-theme="light"] .tabs .btn[data-tab-active]:hover {
        background: color-mix(in srgb, #00000012, #000 8%);
    }

    [data-theme="light"] .tabs .btn[data-tab-active]:active {
        background: color-mix(in srgb, #00000012, #000 16%);
    }

.subtabs {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

    .subtabs .btn {
        flex: 1 1 0;
        justify-content: center;
        text-align: center;
        opacity: 75%;
    }

        .subtabs .btn:hover {
            opacity: 100%;
        }

        .subtabs .btn:disabled {
            opacity: 45%;
            cursor: default;
        }

        .subtabs .btn:disabled:hover {
            background: transparent;
            opacity: 45%;
        }

        .subtabs .btn[data-subtab-active] {
            background: #ffffff25;
            opacity: 100%;
        }

            .subtabs .btn[data-subtab-active]:hover {
                background: color-mix(in srgb, #ffffff25, #fff 10%);
            }

            .subtabs .btn[data-subtab-active]:active {
                background: color-mix(in srgb, #ffffff25, #000 10%);
            }

.subtabs.segmented {
    gap: 0;
    border-bottom: 1px solid var(--border);
}

    .subtabs.segmented .btn {
        border-radius: 0;
        position: relative;
    }

        .subtabs.segmented .btn span {
            flex: none;
        }

        .subtabs.segmented .btn::after {
            content: "";
            position: absolute;
            left: 0.75rem;
            right: 0.75rem;
            bottom: 0;
            height: 2px;
            border-radius: 999px;
            background: var(--foreground);
            transform: scaleX(0);
            transition: transform 200ms ease-out;
        }

        .subtabs.segmented .btn[data-subtab-active]::after {
            transform: scaleX(1);
        }

[data-theme="light"] .subtabs .btn[data-subtab-active] {
    background: #00000012;
}

    [data-theme="light"] .subtabs .btn[data-subtab-active]:hover {
        background: color-mix(in srgb, #00000012, #000 8%);
    }

    [data-theme="light"] .subtabs .btn[data-subtab-active]:active {
        background: color-mix(in srgb, #00000012, #000 16%);
    }

@media (prefers-reduced-motion: reduce) {
    :is(.tabs, .subtabs).segmented .btn::after,
    .subtabs.segmented .btn::after {
        transition: none;
    }
}


