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

html { min-width: 320px; background: var(--bh-bg-app); color: var(--bh-text); }
body { margin: 0; background: var(--bh-bg-app); color: var(--bh-text); font-family: var(--bh-font-sans); font-size: var(--bh-text-base); line-height: var(--bh-leading-ui); }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
a { color: inherit; text-underline-offset: .2em; }
::selection { background: var(--bh-accent); color: var(--bh-text-inverse); }
::placeholder { color: var(--bh-text-tertiary); opacity: 1; }
::-webkit-scrollbar { width: .625rem; height: .625rem; }
::-webkit-scrollbar-track { background: var(--bh-bg-app); }
::-webkit-scrollbar-thumb { border: .1875rem solid var(--bh-bg-app); background: var(--bh-border-strong); }
::-webkit-scrollbar-thumb:hover { background: var(--bh-accent); }
:focus-visible { outline: 2px solid var(--bh-accent); outline-offset: 2px; }
[hidden] { display: none !important; }

.bh-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.bh-skip-link { position: fixed; z-index: 1000; top: -4rem; left: 1rem; padding: var(--bh-space-2) var(--bh-space-3); background: var(--bh-bg-inverse); color: var(--bh-text-inverse); }
.bh-skip-link:focus { top: 1rem; }
.bh-icon { width: var(--bh-icon-md); height: var(--bh-icon-md); display: block; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.bh-icon--sm { width: var(--bh-icon-sm); height: var(--bh-icon-sm); }
.bh-icon--lg { width: var(--bh-icon-lg); height: var(--bh-icon-lg); }

/* Button and IconButton */
.bh-button { min-height: var(--bh-control-default); display: inline-flex; align-items: center; justify-content: center; gap: var(--bh-space-2); border: 1px solid transparent; border-radius: var(--bh-radius-control); padding: .55rem .85rem; background: var(--bh-accent); color: var(--bh-text-inverse); font-size: var(--bh-text-md); font-weight: var(--bh-weight-medium); line-height: 1; text-decoration: none; cursor: pointer; transition: background var(--bh-duration-fast), border-color var(--bh-duration-fast), color var(--bh-duration-fast); }
.bh-button:hover { background: var(--bh-accent-hover); }
.bh-button:active { background: var(--bh-ink); }
.bh-button:focus-visible { outline: 0; box-shadow: var(--bh-focus-ring); }
.bh-button:disabled, .bh-button[aria-disabled="true"] { border-color: var(--bh-border); background: var(--bh-bg-disabled); color: var(--bh-text-disabled); cursor: not-allowed; }
.bh-button--secondary { border-color: var(--bh-border-strong); background: var(--bh-bg-surface); color: var(--bh-text); }
.bh-button--secondary:hover { border-color: var(--bh-ink); background: var(--bh-bg-surface); }
.bh-button--secondary:active { background: var(--bh-bg-selected); }
.bh-button--quiet { border-color: transparent; background: transparent; color: var(--bh-text-secondary); }
.bh-button--quiet:hover { background: var(--bh-bg-subtle); color: var(--bh-text); }
.bh-button--danger { border-color: var(--bh-danger); background: var(--bh-danger); }
.bh-button--danger:hover { border-color: #7f2f28; background: #7f2f28; }
.bh-button--dense { min-height: var(--bh-control-dense); padding: .4rem .65rem; font-size: var(--bh-text-sm); }
.bh-button.is-loading { pointer-events: none; }
.bh-spinner { width: .875rem; height: .875rem; border: 1.5px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: bh-spin .7s linear infinite; }
@keyframes bh-spin { to { transform: rotate(360deg); } }
.bh-icon-button { width: var(--bh-control-default); height: var(--bh-control-default); display: inline-grid; place-items: center; border: 1px solid transparent; border-radius: var(--bh-radius-control); padding: 0; background: transparent; color: var(--bh-text-secondary); cursor: pointer; }
.bh-icon-button:hover { background: var(--bh-bg-subtle); color: var(--bh-text); }
.bh-icon-button:active, .bh-icon-button[aria-pressed="true"] { background: var(--bh-bg-selected); color: var(--bh-accent-hover); }
.bh-icon-button:focus-visible { outline: 0; box-shadow: var(--bh-focus-ring); }
.bh-icon-button:disabled { color: var(--bh-text-disabled); cursor: not-allowed; }

/* Form primitives */
.bh-field { display: grid; align-content: start; gap: var(--bh-space-1-5); min-width: 0; }
.bh-label { display: inline-flex; align-items: baseline; gap: var(--bh-space-1); color: var(--bh-text); font-size: var(--bh-text-sm); font-weight: var(--bh-weight-medium); }
.bh-required { color: var(--bh-danger); }
.bh-help { margin: 0; color: var(--bh-text-secondary); font-size: var(--bh-text-xs); line-height: var(--bh-leading-copy); }
.bh-error { margin: 0; color: var(--bh-danger); font-size: var(--bh-text-xs); line-height: var(--bh-leading-copy); }
.bh-control { width: 100%; min-height: var(--bh-control-default); border: 1px solid var(--bh-border-strong); border-radius: var(--bh-radius-control); padding: .55rem .7rem; background: var(--bh-bg-surface); color: var(--bh-text); font-size: var(--bh-text-md); outline: 0; transition: border-color var(--bh-duration-fast), box-shadow var(--bh-duration-fast), background var(--bh-duration-fast); }
.bh-control:hover { border-color: var(--bh-gray-700); }
.bh-control:focus { border-color: var(--bh-accent); box-shadow: var(--bh-focus-ring); }
.bh-control:disabled { border-color: var(--bh-border); background: var(--bh-bg-disabled); color: var(--bh-text-disabled); cursor: not-allowed; }
.bh-control[aria-invalid="true"] { border-color: var(--bh-danger); }
.bh-control[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgb(150 61 52 / 20%); }
textarea.bh-control { min-height: 5.5rem; resize: vertical; line-height: var(--bh-leading-copy); }
select.bh-control { appearance: none; padding-right: 2.25rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234c5251' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .65rem center; }
.bh-input-wrap { position: relative; }
.bh-input-wrap .bh-control { padding-left: 2.25rem; }
.bh-input-wrap > .bh-icon { position: absolute; z-index: 1; left: .7rem; top: .65rem; width: var(--bh-icon-sm); height: var(--bh-icon-sm); color: var(--bh-text-secondary); pointer-events: none; }
.bh-form-section { padding-top: var(--bh-space-5); border-top: 1px solid var(--bh-ink); }
.bh-form-section__head { display: grid; grid-template-columns: minmax(10rem, .65fr) minmax(18rem, 1.35fr); gap: var(--bh-space-6); margin-bottom: var(--bh-space-5); }
.bh-form-section h3 { margin: 0; font-size: var(--bh-text-lg); letter-spacing: var(--bh-tracking-tight); }
.bh-form-section__head p { max-width: var(--bh-content-readable); margin: 0; color: var(--bh-text-secondary); font-size: var(--bh-text-sm); }
.bh-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bh-space-5); }
.bh-field--full { grid-column: 1 / -1; }
.bh-form-actions { display: flex; justify-content: flex-end; gap: var(--bh-space-2); padding-top: var(--bh-space-5); border-top: 1px solid var(--bh-border); }

/* Combobox and pickers */
.bh-combobox { position: relative; }
.bh-combobox__list { position: absolute; z-index: 20; top: calc(100% + .25rem); left: 0; right: 0; max-height: 14rem; overflow-y: auto; border: 1px solid var(--bh-ink); background: var(--bh-bg-surface); box-shadow: var(--bh-shadow-overlay); }
.bh-combobox__option { width: 100%; min-height: 2.5rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--bh-space-2); border: 0; border-bottom: 1px solid var(--bh-border); padding: .45rem .65rem; background: transparent; color: var(--bh-text); text-align: left; cursor: pointer; }
.bh-combobox__option:last-child { border-bottom: 0; }
.bh-combobox__option:hover, .bh-combobox__option[aria-selected="true"] { background: var(--bh-bg-selected); }
.bh-combobox__option small { color: var(--bh-text-secondary); }
.bh-combobox__empty { padding: var(--bh-space-3); color: var(--bh-text-secondary); font-size: var(--bh-text-sm); }

/* Checkbox, radio and toggle */
.bh-choice { display: inline-flex; align-items: flex-start; gap: var(--bh-space-2); color: var(--bh-text); font-size: var(--bh-text-md); cursor: pointer; }
.bh-choice input { position: absolute; opacity: 0; pointer-events: none; }
.bh-choice__mark { width: 1.125rem; height: 1.125rem; display: grid; place-items: center; flex: 0 0 auto; margin-top: .05rem; border: 1px solid var(--bh-border-strong); background: var(--bh-bg-surface); }
.bh-choice--radio .bh-choice__mark { border-radius: 50%; }
.bh-choice input:focus-visible + .bh-choice__mark { box-shadow: var(--bh-focus-ring); }
.bh-choice input:checked + .bh-choice__mark { border-color: var(--bh-accent); background: var(--bh-accent); color: var(--bh-text-inverse); }
.bh-choice input:checked + .bh-choice__mark::after { width: .5rem; height: .25rem; border-bottom: 1.5px solid currentColor; border-left: 1.5px solid currentColor; content: ""; transform: translateY(-.08rem) rotate(-45deg); }
.bh-choice--radio input:checked + .bh-choice__mark::after { width: .42rem; height: .42rem; border: 0; border-radius: 50%; background: currentColor; transform: none; }
.bh-choice input:disabled + .bh-choice__mark, .bh-choice input:disabled ~ span { opacity: .5; cursor: not-allowed; }
.bh-toggle { display: inline-flex; align-items: center; gap: var(--bh-space-2); font-size: var(--bh-text-md); cursor: pointer; }
.bh-toggle input { position: absolute; opacity: 0; }
.bh-toggle__track { position: relative; width: 2.25rem; height: 1.25rem; border: 1px solid var(--bh-border-strong); background: var(--bh-border); transition: background var(--bh-duration-fast), border-color var(--bh-duration-fast); }
.bh-toggle__track::after { position: absolute; top: .125rem; left: .125rem; width: .875rem; height: .875rem; background: var(--bh-bg-surface); content: ""; transition: transform var(--bh-duration-base) var(--bh-ease-out); }
.bh-toggle input:checked + .bh-toggle__track { border-color: var(--bh-accent); background: var(--bh-accent); }
.bh-toggle input:checked + .bh-toggle__track::after { transform: translateX(1rem); }
.bh-toggle input:focus-visible + .bh-toggle__track { box-shadow: var(--bh-focus-ring); }

/* Badge and avatar */
.bh-badge { width: max-content; min-height: 1.375rem; display: inline-flex; align-items: center; gap: .35rem; border: 1px solid var(--bh-border); padding: .15rem .45rem; background: var(--bh-bg-subtle); color: var(--bh-text-secondary); font-size: var(--bh-text-xs); line-height: 1; white-space: nowrap; }
.bh-badge::before { width: .375rem; height: .375rem; border-radius: 50%; background: currentColor; content: ""; }
.bh-badge--success { border-color: #b8d2c4; background: var(--bh-success-soft); color: var(--bh-success); }
.bh-badge--warning { border-color: #decaa4; background: var(--bh-warning-soft); color: var(--bh-warning); }
.bh-badge--danger { border-color: #dfb8b4; background: var(--bh-danger-soft); color: var(--bh-danger); }
.bh-badge--info { border-color: #bfd0d8; background: var(--bh-info-soft); color: var(--bh-info); }
.bh-badge--neutral::before { display: none; }
.bh-avatar { width: 2rem; height: 2rem; display: inline-grid; place-items: center; flex: 0 0 auto; background: var(--bh-accent); color: var(--bh-text-inverse); font-size: var(--bh-text-xs); font-weight: var(--bh-weight-semibold); letter-spacing: -.02em; }
.bh-avatar--sm { width: 1.5rem; height: 1.5rem; font-size: .55rem; }
.bh-avatar--lg { width: 2.75rem; height: 2.75rem; font-size: var(--bh-text-sm); }

/* Tooltip and dropdown */
.bh-tooltip { position: relative; display: inline-flex; }
.bh-tooltip::after { position: absolute; z-index: 50; bottom: calc(100% + .5rem); left: 50%; width: max-content; max-width: 16rem; padding: .35rem .5rem; background: var(--bh-bg-inverse); color: var(--bh-text-inverse); content: attr(data-tooltip); font-size: var(--bh-text-xs); line-height: 1.25; opacity: 0; pointer-events: none; transform: translate(-50%, .25rem); transition: opacity var(--bh-duration-fast), transform var(--bh-duration-fast); }
.bh-tooltip:hover::after, .bh-tooltip:focus-within::after { opacity: 1; transform: translate(-50%, 0); }
.bh-dropdown { position: relative; display: inline-block; }
.bh-dropdown > summary { list-style: none; }
.bh-dropdown > summary::-webkit-details-marker { display: none; }
.bh-dropdown__menu { position: absolute; z-index: 40; top: calc(100% + .25rem); right: 0; min-width: 12rem; border: 1px solid var(--bh-ink); padding: .25rem; background: var(--bh-bg-surface); box-shadow: var(--bh-shadow-overlay); }
.bh-dropdown__item { width: 100%; min-height: 2.25rem; display: flex; align-items: center; gap: var(--bh-space-2); border: 0; padding: .45rem .6rem; background: transparent; color: var(--bh-text); text-align: left; cursor: pointer; }
.bh-dropdown__item:hover, .bh-dropdown__item:focus-visible { background: var(--bh-bg-selected); outline: 0; }
.bh-dropdown__item--danger { color: var(--bh-danger); }

/* Tabs, breadcrumbs and pagination */
.bh-tabs { display: flex; overflow-x: auto; border-bottom: 1px solid var(--bh-border); scrollbar-width: none; }
.bh-tabs::-webkit-scrollbar { display: none; }
.bh-tab { min-height: var(--bh-control-default); flex: 0 0 auto; border: 0; border-bottom: 2px solid transparent; padding: .55rem .75rem; background: transparent; color: var(--bh-text-secondary); cursor: pointer; font-size: var(--bh-text-sm); }
.bh-tab:hover { color: var(--bh-text); }
.bh-tab[aria-selected="true"] { border-bottom-color: var(--bh-accent); color: var(--bh-text); font-weight: var(--bh-weight-medium); }
.bh-tab:focus-visible { outline-offset: -3px; }
.bh-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; color: var(--bh-text-secondary); font-size: var(--bh-text-sm); }
.bh-breadcrumbs a { color: var(--bh-accent); text-decoration: none; }
.bh-breadcrumbs a:hover { text-decoration: underline; }
.bh-pagination { display: flex; align-items: center; gap: .25rem; }
.bh-page { min-width: 2rem; height: 2rem; display: grid; place-items: center; border: 1px solid transparent; background: transparent; color: var(--bh-text-secondary); cursor: pointer; font-size: var(--bh-text-sm); }
.bh-page:hover { border-color: var(--bh-border); color: var(--bh-text); }
.bh-page[aria-current="page"] { border-color: var(--bh-ink); background: var(--bh-ink); color: var(--bh-text-inverse); }

/* Feedback */
.bh-alert { display: grid; grid-template-columns: auto 1fr auto; gap: var(--bh-space-3); align-items: start; border: 1px solid var(--bh-border); padding: .75rem .875rem; background: var(--bh-bg-surface); font-size: var(--bh-text-md); }
.bh-alert .bh-icon { color: var(--bh-info); }
.bh-alert--success { border-color: #b8d2c4; background: var(--bh-success-soft); }
.bh-alert--success .bh-icon { color: var(--bh-success); }
.bh-alert--warning { border-color: #decaa4; background: var(--bh-warning-soft); }
.bh-alert--warning .bh-icon { color: var(--bh-warning); }
.bh-alert--danger { border-color: #dfb8b4; background: var(--bh-danger-soft); }
.bh-alert--danger .bh-icon { color: var(--bh-danger); }
.bh-alert strong { display: block; margin-bottom: .15rem; font-size: var(--bh-text-sm); }
.bh-alert p { margin: 0; color: var(--bh-text-secondary); font-size: var(--bh-text-sm); }
.bh-empty { min-height: 14rem; display: grid; place-items: center; border-top: 1px solid var(--bh-ink); border-bottom: 1px solid var(--bh-border); padding: var(--bh-space-8); text-align: center; }
.bh-empty__inner { max-width: 30rem; }
.bh-empty .bh-icon { width: 2rem; height: 2rem; margin: 0 auto var(--bh-space-4); color: var(--bh-text-tertiary); }
.bh-empty h3 { margin: 0 0 var(--bh-space-2); font-size: var(--bh-text-lg); }
.bh-empty p { margin: 0 0 var(--bh-space-4); color: var(--bh-text-secondary); font-size: var(--bh-text-md); }
.bh-skeleton { position: relative; overflow: hidden; background: var(--bh-gray-200); }
.bh-skeleton::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgb(255 255 255 / 65%), transparent); content: ""; transform: translateX(-100%); animation: bh-skeleton 1.35s infinite; }
@keyframes bh-skeleton { to { transform: translateX(100%); } }
.bh-skeleton--text { width: 70%; height: .75rem; }
.bh-skeleton--title { width: 42%; height: 1rem; }
.bh-skeleton--row { width: 100%; height: var(--bh-table-row-default); border-bottom: 1px solid var(--bh-bg-surface); }
.bh-toast-region { position: fixed; z-index: 100; right: 1rem; bottom: 1rem; display: grid; gap: var(--bh-space-2); pointer-events: none; }
.bh-toast { width: min(24rem, calc(100vw - 2rem)); display: grid; grid-template-columns: auto 1fr auto; gap: var(--bh-space-2); align-items: start; padding: .75rem .875rem; background: var(--bh-bg-inverse); color: var(--bh-text-inverse); box-shadow: var(--bh-shadow-overlay); animation: bh-toast-in var(--bh-duration-base) var(--bh-ease-out) both; pointer-events: auto; }
.bh-toast p { margin: 0; font-size: var(--bh-text-sm); }
.bh-toast .bh-icon-button { width: 1.75rem; height: 1.75rem; color: inherit; }
@keyframes bh-toast-in { from { opacity: 0; transform: translateY(.75rem); } }

/* Modal, confirmation and drawer */
.bh-dialog { width: min(34rem, calc(100vw - 2rem)); max-width: none; border: 1px solid var(--bh-ink); border-radius: 0; padding: 0; background: var(--bh-bg-surface); color: var(--bh-text); box-shadow: var(--bh-shadow-overlay); }
.bh-dialog::backdrop { background: rgb(16 17 18 / 48%); }
.bh-dialog__head { min-height: 3.75rem; display: flex; justify-content: space-between; align-items: center; gap: var(--bh-space-4); padding: .75rem 1rem; border-bottom: 1px solid var(--bh-ink); }
.bh-dialog__head h2 { margin: 0; font-size: var(--bh-text-lg); letter-spacing: var(--bh-tracking-tight); }
.bh-dialog__body { padding: 1rem; }
.bh-dialog__body > p:first-child { margin-top: 0; }
.bh-dialog__actions { display: flex; justify-content: flex-end; gap: var(--bh-space-2); padding: .75rem 1rem; border-top: 1px solid var(--bh-border); }
.bh-drawer { width: min(27rem, 100vw); max-width: none; height: 100dvh; max-height: none; margin: 0 0 0 auto; border: 0; border-left: 1px solid var(--bh-ink); padding: 0; background: var(--bh-bg-surface); color: var(--bh-text); }
.bh-drawer::backdrop { background: rgb(16 17 18 / 38%); }
.bh-drawer[open] { animation: bh-drawer-in var(--bh-duration-base) var(--bh-ease-out); }
@keyframes bh-drawer-in { from { transform: translateX(100%); } }
.bh-drawer__body { display: grid; gap: var(--bh-space-5); padding: 1rem; }

/* File upload */
.bh-file-upload { min-height: 8rem; display: grid; place-items: center; border: 1px dashed var(--bh-border-strong); padding: var(--bh-space-5); background: var(--bh-bg-subtle); text-align: center; cursor: pointer; }
.bh-file-upload:hover, .bh-file-upload.is-dragging { border-color: var(--bh-accent); background: var(--bh-accent-soft); }
.bh-file-upload input { position: absolute; opacity: 0; pointer-events: none; }
.bh-file-upload strong { display: block; margin: var(--bh-space-2) 0 var(--bh-space-1); font-size: var(--bh-text-sm); }
.bh-file-upload span { color: var(--bh-text-secondary); font-size: var(--bh-text-xs); }

/* Search and filter bar */
.bh-search { position: relative; min-width: 14rem; }
.bh-search .bh-control { padding-left: 2.25rem; }
.bh-search .bh-icon { position: absolute; z-index: 1; top: .65rem; left: .7rem; width: var(--bh-icon-sm); height: var(--bh-icon-sm); color: var(--bh-text-secondary); pointer-events: none; }
.bh-filter-bar { min-height: 3.5rem; display: flex; justify-content: space-between; align-items: center; gap: var(--bh-space-3); border-top: 1px solid var(--bh-ink); border-bottom: 1px solid var(--bh-border); padding: .5rem 0; }
.bh-filter-bar__group { min-width: 0; display: flex; align-items: center; gap: var(--bh-space-2); }
.bh-filter-chip { min-height: 2rem; display: inline-flex; align-items: center; gap: .35rem; border: 1px solid var(--bh-border); padding: .35rem .55rem; background: var(--bh-bg-surface); color: var(--bh-text-secondary); font-size: var(--bh-text-sm); cursor: pointer; white-space: nowrap; }
.bh-filter-chip:hover { border-color: var(--bh-border-strong); color: var(--bh-text); }
.bh-filter-chip[aria-pressed="true"] { border-color: var(--bh-accent); background: var(--bh-accent-soft); color: var(--bh-accent-hover); }

/* Table and DataTable */
.bh-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; contain: inline-size layout paint; background: var(--bh-bg-surface); }
.bh-table { width: 100%; min-width: 54rem; border-collapse: collapse; font-size: var(--bh-text-sm); font-variant-numeric: tabular-nums; }
.bh-table th { height: 2.25rem; border-bottom: 1px solid var(--bh-border); padding: .45rem .65rem; color: var(--bh-text-secondary); font-size: var(--bh-text-xs); font-weight: var(--bh-weight-medium); text-align: left; white-space: nowrap; }
.bh-table td { height: var(--bh-table-row-default); border-bottom: 1px solid var(--bh-border); padding: .5rem .65rem; vertical-align: middle; }
.bh-table tbody tr:hover { background: var(--bh-bg-subtle); }
.bh-table tbody tr.is-selected { background: var(--bh-bg-selected); }
.bh-table[data-density="dense"] td { height: var(--bh-table-row-dense); padding-top: .35rem; padding-bottom: .35rem; }
.bh-table[data-density="comfortable"] td { height: var(--bh-table-row-comfortable); padding-top: .75rem; padding-bottom: .75rem; }
.bh-table__sort { display: inline-flex; align-items: center; gap: .3rem; border: 0; padding: 0; background: transparent; color: inherit; cursor: pointer; font-size: inherit; font-weight: inherit; }
.bh-table__sort:hover { color: var(--bh-text); }
.bh-table__primary { display: block; color: var(--bh-text); font-weight: var(--bh-weight-medium); }
.bh-table__secondary { display: block; margin-top: .1rem; color: var(--bh-text-secondary); font-size: var(--bh-text-xs); }
.bh-data-table { min-width: 0; overflow: clip; border-bottom: 1px solid var(--bh-border); }
.bh-data-table__footer { min-height: 3.5rem; display: flex; justify-content: space-between; align-items: center; gap: var(--bh-space-4); padding: .6rem 0; color: var(--bh-text-secondary); font-size: var(--bh-text-sm); }
.bh-data-state { min-height: 13rem; display: grid; place-items: center; border-bottom: 1px solid var(--bh-border); padding: var(--bh-space-6); background: var(--bh-bg-surface); text-align: center; }
.bh-data-state h3 { margin: 0 0 var(--bh-space-2); font-size: var(--bh-text-md); }
.bh-data-state p { margin: 0 0 var(--bh-space-3); color: var(--bh-text-secondary); font-size: var(--bh-text-sm); }

/* Navigation shell */
.bh-app-shell { min-height: 100dvh; display: grid; grid-template-columns: var(--bh-sidebar-width) minmax(0, 1fr); }
.bh-sidebar { position: fixed; z-index: 60; inset: 0 auto 0 0; width: var(--bh-sidebar-width); display: flex; flex-direction: column; background: var(--bh-bg-inverse); color: var(--bh-text-inverse); }
.bh-sidebar__brand { min-height: var(--bh-topbar-height); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--bh-border-inverse); padding: 0 1.25rem; }
.bh-wordmark { border: 0; padding: 0; background: transparent; color: inherit; font-size: var(--bh-text-base); font-weight: 800; letter-spacing: -.04em; }
.bh-sidebar__close { display: none; color: inherit; }
.bh-nav { flex: 1; overflow-y: auto; padding: .75rem; }
.bh-nav__group { margin-bottom: .75rem; }
.bh-nav__label { display: block; padding: .65rem .55rem .3rem; color: #898a86; font-size: .625rem; text-transform: uppercase; letter-spacing: .09em; }
.bh-nav__item { width: 100%; min-height: 2.25rem; display: grid; grid-template-columns: 1.125rem 1fr; align-items: center; gap: .6rem; border: 0; padding: .45rem .55rem; background: transparent; color: #c9c9c5; text-align: left; cursor: pointer; font-size: var(--bh-text-sm); }
.bh-nav__item:hover { background: rgb(255 255 255 / 6%); color: var(--bh-white); }
.bh-nav__item[aria-current="page"] { background: var(--bh-bg-surface); color: var(--bh-ink); }
.bh-nav__item .bh-icon { width: var(--bh-icon-sm); height: var(--bh-icon-sm); }
.bh-sidebar__footer { min-height: 4rem; display: flex; align-items: center; gap: var(--bh-space-2); border-top: 1px solid var(--bh-border-inverse); padding: .65rem .75rem; }
.bh-sidebar__footer div { min-width: 0; display: grid; }
.bh-sidebar__footer strong { overflow: hidden; font-size: var(--bh-text-sm); white-space: nowrap; text-overflow: ellipsis; }
.bh-sidebar__footer small { color: #959690; font-size: var(--bh-text-xs); }
.bh-workspace { min-width: 0; grid-column: 2; }
.bh-topbar { position: sticky; z-index: 30; top: 0; height: var(--bh-topbar-height); display: grid; grid-template-columns: minmax(17rem, 34rem) 1fr; align-items: center; gap: var(--bh-space-4); border-bottom: 1px solid var(--bh-border); padding: 0 var(--bh-page-gutter); background: rgb(255 255 255 / 96%); }
.bh-topbar__menu { display: none; }
.bh-topbar__actions { justify-self: end; display: flex; align-items: center; gap: var(--bh-space-1); }
.bh-main { width: min(100%, var(--bh-content-max)); margin: 0 auto; padding: var(--bh-space-8) var(--bh-page-gutter) var(--bh-space-16); }
.bh-mobile-backdrop { display: none; }

@media (max-width: 960px) {
  .bh-app-shell { grid-template-columns: 1fr; }
  .bh-sidebar { transform: translateX(-102%); transition: transform var(--bh-duration-base) var(--bh-ease-out); }
  .bh-sidebar.is-open { transform: translateX(0); }
  .bh-sidebar__close { display: inline-grid; }
  .bh-workspace { grid-column: 1; }
  .bh-topbar { grid-template-columns: auto minmax(0, 1fr) auto; }
  .bh-topbar__menu { display: inline-grid; }
  .bh-app-shell.nav-open .bh-mobile-backdrop { position: fixed; z-index: 50; inset: 0; display: block; background: rgb(16 17 18 / 42%); }
}

@media (max-width: 720px) {
  .bh-topbar { gap: var(--bh-space-1); padding: 0 .75rem; }
  .bh-topbar .bh-search { min-width: 0; }
  .bh-topbar__actions .bh-avatar { display: none; }
  .bh-form-section__head, .bh-form-grid { grid-template-columns: 1fr; }
  .bh-field--full { grid-column: auto; }
  .bh-filter-bar { align-items: stretch; flex-direction: column; padding: .65rem 0; }
  .bh-filter-bar__group { overflow-x: auto; }
  .bh-data-table__footer { align-items: flex-start; flex-direction: column; }
  .bh-main { padding-top: var(--bh-space-6); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
