/* 156: written states and motion. Empty lists, list skeletons while a filter reloads, optimistic ticks, subtle entry. */
.bh-table--empty thead{display:none}
.bh-empty-row b{display:block;color:var(--bh-ink);font-size:15px;font-weight:600}
.bh-empty-row .bh-btn,.bh-empty .bh-btn{margin-top:12px}
.bh-empty__hint{display:block;margin-top:8px;font-size:13px;color:var(--bh-ink-3)}
.bh-empty--box::before{content:"";width:24px;height:24px;background:currentColor;opacity:.7;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M3 13h5l2 3h4l2-3h5M6 5h12l3 8v6H3v-6z'/%3E%3C/svg%3E") center/contain no-repeat}
.bh-empty--box b{color:var(--bh-ink);font-weight:600}
.bh-howto{margin:-4px 0 12px;font-size:13px}
.bh-loading{pointer-events:none}
.bh-loading tbody td{position:relative;color:transparent!important}
.bh-loading tbody td>*{visibility:hidden}
.bh-loading tbody td::after{content:"";position:absolute;left:8px;right:8px;top:50%;height:10px;margin-top:-5px;border-radius:4px;background:linear-gradient(90deg,var(--bh-surface-3) 25%,var(--bh-surface-2) 45%,var(--bh-surface-3) 65%);background-size:300% 100%;animation:bhsk 1.2s ease-in-out infinite}
@keyframes bhsk{from{background-position:100% 0}to{background-position:0 0}}
@keyframes bhin{from{opacity:0;transform:translateY(4px)}}
.bh-alert,.bh-empty,.bh-empty-row>*,details[open]>:not(summary){animation:bhin 180ms var(--bh-ease) both}
.bh-table tbody tr,.bh-kpi--link,.bh-card,.bh-chip{transition:background-color var(--bh-dur-1),border-color var(--bh-dur-1),box-shadow var(--bh-dur-2)}
.bh-gone{opacity:.4;transition:opacity 180ms var(--bh-ease)}
.bh-gone .bh-btn{visibility:hidden}
.bh-toast{transition:opacity 180ms var(--bh-ease),transform 180ms var(--bh-ease)}
@media (prefers-reduced-motion:reduce){.bh-alert,.bh-empty,.bh-empty-row>*,details[open]>*,.bh-loading tbody td::after{animation:none}.bh-toast,.bh-gone{transition:none}}
