/* Bundles plugin — structural styles. Colours come from the active theme's tokens. */
.bn {
    --bn-primary: var(--color-theme-primary, var(--theme-primary, #4f46e5));
    --bn-on-primary: var(--color-theme-on-primary, var(--theme-on-primary, #fff));
    --bn-text: var(--color-theme-text, var(--theme-text, #18181b));
    --bn-muted: var(--color-theme-muted, var(--theme-text-muted, #71717a));
    --bn-border: var(--color-theme-border, var(--theme-border, #e4e4e7));
    --bn-surface: var(--color-theme-surface, var(--theme-surface, #fff));
    --bn-title-font: var(--font-title, inherit);
    color: var(--bn-text);
    border: 1px solid var(--bn-border);
    border-radius: 1rem;
    background: var(--bn-surface);
    padding: 1.25rem;
    margin-top: 1.25rem;
    text-align: left;
}
.bn *, .bn *::before, .bn *::after { box-sizing: border-box; }
.bn-title { margin: 0 0 1rem; font-family: var(--bn-title-font); font-size: 1.125rem; font-weight: 600; line-height: 1.3; color: var(--bn-text); }
.bn-desc { margin: -.5rem 0 1rem; color: var(--bn-muted); font-size: .875rem; line-height: 1.5; }
.bn-cover { display: block; width: 100%; max-height: 18rem; object-fit: cover; border-radius: .75rem; margin-bottom: 1rem; }
.bn-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .625rem; }
.bn-item { display: flex; align-items: center; gap: .75rem; }
.bn-item.is-off { opacity: .5; }
.bn-check { width: 1.125rem; height: 1.125rem; flex: none; accent-color: var(--bn-primary); cursor: pointer; }
.bn-thumb { width: 3.25rem; height: 3.25rem; flex: none; border-radius: .5rem; object-fit: cover; border: 1px solid var(--bn-border); background: #f4f4f5; }
.bn-info { min-width: 0; flex: 1; font-size: .875rem; line-height: 1.35; }
.bn-name { display: block; font-weight: 500; color: var(--bn-text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
a.bn-name:hover { color: var(--bn-primary); }
.bn-meta { display: block; color: var(--bn-muted); font-size: .75rem; }
.bn-badge { display: inline-block; margin-left: .375rem; padding: .05rem .4rem; border-radius: 999px; font-size: .6875rem; font-weight: 600; background: var(--bn-border); color: var(--bn-text); }
.bn-price { flex: none; font-weight: 600; font-size: .875rem; white-space: nowrap; }
.bn-summary { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--bn-border); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.bn-total { font-size: .875rem; color: var(--bn-muted); }
.bn-total strong { display: block; font-family: var(--bn-title-font); font-size: 1.375rem; font-weight: 700; color: var(--bn-text); }
.bn-old { margin-left: .5rem; font-size: .875rem; font-weight: 400; color: var(--bn-muted); text-decoration: line-through; }
.bn-save { display: block; margin-top: .125rem; font-weight: 600; color: var(--bn-primary); }
.bn-hint { margin: .75rem 0 0; font-size: .8125rem; color: var(--bn-muted); }
.bn-button {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 2.75rem; padding: .625rem 1.25rem; border: 0; border-radius: 999px;
    background: var(--bn-primary); color: var(--bn-on-primary);
    font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; transition: opacity .15s ease;
}
.bn-button:hover { opacity: .9; }
.bn-button:disabled { opacity: .5; cursor: not-allowed; }
.bn-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .875rem; }
.bn-links a { color: var(--bn-text); font-weight: 500; text-decoration: none; }
.bn-links a:hover { color: var(--bn-primary); }
.bn-empty { border: 1px dashed #a1a1aa; border-radius: 1rem; padding: 2rem; text-align: center; color: #71717a; font-size: .875rem; }
.bn-page { max-width: 56rem; margin: 0 auto; padding: 3rem 1rem; }
.bn-page .bn { margin-top: 0; padding: 1.5rem; }
.bn-page h1.bn-title { font-size: 2rem; }
