.book-templates {
    --bt-surface: var(--bs-body-bg);
    --bt-muted-surface: var(--bs-tertiary-bg);
    --bt-border: var(--bs-border-color);
    --bt-accent: var(--bs-primary);
    display: grid;
    gap: 1.5rem;
    min-inline-size: 0;
}

.book-templates *,
.book-templates *::before,
.book-templates *::after {
    box-sizing: border-box;
}

.book-templates :is(a, button, input, select, textarea, summary):focus-visible {
    outline-offset: 2px;
}

.book-templates :is(.btn, .form-control, .form-select) {
    min-block-size: 2.75rem;
}

.book-templates textarea.form-control {
    min-block-size: 7rem;
}

.bt-page-head,
.bt-section-head,
.bt-card-head,
.bt-actions,
.bt-inline-actions,
.bt-summary-grid,
.bt-version-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.bt-page-head__copy,
.bt-section-head__copy,
.bt-card-head__copy {
    display: grid;
    gap: .5rem;
    min-inline-size: 0;
    max-inline-size: 68ch;
    overflow-wrap: anywhere;
}

.bt-page-head__copy > *,
.bt-section-head__copy > *,
.bt-card-head__copy > * {
    margin-block: 0;
}

.bt-eyebrow {
    color: var(--bs-secondary-color);
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.bt-card,
.bt-panel,
.bt-empty,
.bt-alert {
    border: 1px solid var(--bt-border);
    border-radius: 1rem;
    background: var(--bt-surface);
}

.bt-card,
.bt-panel {
    display: grid;
    gap: 1rem;
    padding: 1.25rem;
    min-inline-size: 0;
}

.bt-empty,
.bt-alert {
    padding: 1rem 1.25rem;
}

.bt-alert--error {
    border-color: var(--bs-danger-border-subtle);
    background: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
}

.bt-alert--success {
    border-color: var(--bs-success-border-subtle);
    background: var(--bs-success-bg-subtle);
    color: var(--bs-success-text-emphasis);
}

.bt-alert:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.bt-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: 1rem;
    min-inline-size: 0;
}

.bt-card[data-selected="true"] {
    border-color: var(--bt-accent);
    box-shadow: 0 0 0 1px var(--bt-accent);
}

.bt-meta,
.bt-tags,
.bt-badges,
.bt-module-list,
.bt-actions,
.bt-inline-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    align-items: center;
}

.bt-meta {
    color: var(--bs-secondary-color);
    font-size: .875rem;
}

.bt-badge,
.bt-tag {
    display: inline-flex;
    align-items: center;
    min-block-size: 1.75rem;
    padding: .25rem .625rem;
    border-radius: 999px;
    background: var(--bt-muted-surface);
    color: var(--bs-body-color);
    font-size: .8125rem;
    line-height: 1.2;
}

.bt-badge--accent {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
}

.bt-form,
.bt-form-section,
.bt-field,
.bt-choice-list,
.bt-version-list,
.bt-plan-list,
.bt-warning-list {
    display: grid;
}

.bt-form {
    gap: 1.5rem;
}

.bt-form-section,
.bt-version-list,
.bt-plan-list,
.bt-warning-list {
    gap: 1rem;
}

.bt-field,
.bt-choice-list {
    gap: .5rem;
}

.bt-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.bt-field--wide {
    grid-column: 1 / -1;
}

.bt-help,
.bt-muted {
    color: var(--bs-secondary-color);
    font-size: .875rem;
}

.bt-choice {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    min-block-size: 2.75rem;
    padding: .625rem .75rem;
    border-radius: .75rem;
    background: var(--bt-muted-surface);
    cursor: pointer;
    touch-action: manipulation;
}

.bt-choice input {
    flex: 0 0 auto;
    margin-block-start: .25rem;
}

.bt-choice[data-unavailable="true"] {
    cursor: not-allowed;
    opacity: .62;
}

.bt-choice__copy {
    display: grid;
    gap: .125rem;
    min-inline-size: 0;
}

.bt-disclosure {
    border: 1px solid var(--bt-border);
    border-radius: .875rem;
    overflow: clip;
}

.bt-disclosure > summary {
    display: flex;
    align-items: center;
    min-block-size: 2.75rem;
    padding: .75rem 1rem;
    background: var(--bt-muted-surface);
    cursor: pointer;
    font-weight: 600;
    touch-action: manipulation;
}

.bt-disclosure > summary::after {
    content: "+";
    margin-inline-start: auto;
    padding-inline-start: 1rem;
    font-size: 1.25rem;
    line-height: 1;
}

.bt-disclosure[open] > summary::after {
    content: "−";
}

.bt-disclosure__body {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.bt-filter-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: end;
    gap: .75rem;
}

.bt-template-radio {
    inline-size: 1.25rem;
    block-size: 1.25rem;
}

.bt-summary-grid {
    justify-content: flex-start;
}

.bt-summary-item {
    display: grid;
    gap: .25rem;
    min-inline-size: 7rem;
    padding: .75rem 1rem;
    border-radius: .75rem;
    background: var(--bt-muted-surface);
}

.bt-summary-item strong {
    font-size: 1.25rem;
}

.bt-plan-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem 1rem;
    align-items: start;
    padding: 1rem;
    border-radius: .875rem;
    background: var(--bt-muted-surface);
    min-inline-size: 0;
}

.bt-plan-item__copy {
    display: grid;
    gap: .25rem;
    min-inline-size: 0;
    overflow-wrap: anywhere;
}

.bt-plan-item__strategy {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 18rem);
    gap: .375rem;
}

.bt-code {
    overflow-wrap: anywhere;
    font-family: var(--bs-font-monospace);
    font-size: .75rem;
    color: var(--bs-secondary-color);
}

.bt-sticky-actions {
    position: sticky;
    inset-block-end: 0;
    z-index: 2;
    margin-inline: -.25rem;
    padding: .75rem .25rem calc(.75rem + env(safe-area-inset-bottom));
    background: color-mix(in srgb, var(--bs-body-bg) 92%, transparent);
    backdrop-filter: blur(8px);
}

.bt-sr-only {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

[data-bt-enhancement] {
    display: none;
}

.book-templates[data-bt-enhanced="true"] [data-bt-enhancement] {
    display: flex;
}

@media (max-width: 42rem) {
    .bt-form-grid,
    .bt-filter-bar,
    .bt-plan-item {
        grid-template-columns: minmax(0, 1fr);
    }

    .bt-filter-bar > .btn,
    .bt-actions > .btn,
    .bt-actions > form,
    .bt-actions > form > .btn,
    .bt-sticky-actions .btn {
        inline-size: 100%;
    }

    .bt-plan-item__strategy {
        grid-column: auto;
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: no-preference) {
    .bt-card {
        transition: border-color 140ms ease-out, box-shadow 140ms ease-out;
    }
}

@media (forced-colors: active) {
    .bt-card[data-selected="true"] {
        outline: 2px solid Highlight;
        outline-offset: 2px;
    }
}
