.bl-empty { padding: 42px 24px; border: 1px dashed var(--bl-line-strong); border-radius: var(--bl-radius); background: rgba(255,255,255,.42); text-align: center; }
.bl-empty-icon { width: 46px; height: 46px; margin: 0 auto 14px; border: 1px solid var(--bl-line); border-radius: 13px; background: var(--bl-surface); color: var(--bl-muted); display: grid; place-items: center; box-shadow: var(--bl-shadow-xs); }
.bl-empty-icon .bl-icon { width: 20px; height: 20px; }
.bl-empty h2 { margin: 6px 0; font-size: 18px; letter-spacing: -.025em; }
.bl-empty p { max-width: 560px; margin: 0 auto; color: var(--bl-muted); font-size: 10.5px; line-height: 1.6; }
.bl-empty .bl-actions-row { justify-content: center; }
.bl-notice { margin: 14px 0; padding: 11px 12px; border: 1px solid var(--bl-line); border-radius: 10px; display: flex; align-items: flex-start; gap: 9px; font-size: 10px; line-height: 1.5; }
.bl-notice .bl-icon { width: 16px; height: 16px; margin-top: 1px; }
.bl-notice-error { background: var(--bl-danger-soft); border-color: #ecd1cf; color: var(--bl-danger); }
.bl-notice-success { background: var(--bl-success-soft); border-color: #cfdfd3; color: var(--bl-success); }
.bl-notice-warning { background: var(--bl-warning-soft); border-color: #eadbc8; color: var(--bl-warning); }
.bl-notice-info { background: var(--bl-info-soft); border-color: #d6e1e9; color: var(--bl-info); }
.bl-skeleton { position: relative; overflow: hidden; border-radius: 7px; background: #e9e8e3; color: transparent; }
.bl-skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); animation: bl-shimmer 1.35s infinite; }
@keyframes bl-shimmer { to { transform: translateX(100%); } }
.bl-state-panel { padding: 24px; border: 1px solid var(--bl-line); border-radius: 16px; background: var(--bl-surface); }
.bl-state-panel-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(260px,.65fr); gap: 22px; align-items: center; }
.bl-state-panel h2 { margin: 7px 0 7px; font-size: 22px; letter-spacing: -.035em; }
.bl-state-panel p { margin: 0; max-width: 680px; color: var(--bl-muted); font-size: 11px; line-height: 1.6; }
.bl-state-checklist { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.bl-state-checklist li { display: flex; align-items: flex-start; gap: 8px; color: var(--bl-muted); font-size: 10px; line-height: 1.45; }
.bl-state-checklist .bl-icon { width: 15px; height: 15px; color: var(--bl-success); }
