/* ================================================================ Article Series — bkbg-aser-* ================================================================ */ .bkbg-aser-block { border: 1px solid; padding: 24px; box-sizing: border-box; } /* ── Header ───────────────────────────────────────────────────── */ .bkbg-aser-header { margin-bottom: 18px; } .bkbg-aser-series-label { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; } .bkbg-aser-title { font-family: var(--bkbg-aser-title-font-family, inherit); font-size: var(--bkbg-aser-title-font-size-d, var(--bkbg-aser-title-font-size, var(--bkbg-aser-title-sz, 20px))); font-weight: var(--bkbg-aser-title-font-weight, 800); font-style: var(--bkbg-aser-title-font-style, normal); text-transform: var(--bkbg-aser-title-text-transform, none); text-decoration: var(--bkbg-aser-title-text-decoration, none); line-height: var(--bkbg-aser-title-line-height-d, var(--bkbg-aser-title-line-height, 1.3)); letter-spacing: var(--bkbg-aser-title-letter-spacing-d, var(--bkbg-aser-title-letter-spacing, normal)); word-spacing: var(--bkbg-aser-title-word-spacing-d, var(--bkbg-aser-title-word-spacing, normal)); margin: 0 0 6px; } .bkbg-aser-desc { font-family: var(--bkbg-aser-desc-font-family, inherit); font-size: var(--bkbg-aser-desc-font-size-d, var(--bkbg-aser-desc-font-size, var(--bkbg-aser-desc-sz, 14px))); font-weight: var(--bkbg-aser-desc-font-weight, 400); font-style: var(--bkbg-aser-desc-font-style, normal); text-transform: var(--bkbg-aser-desc-text-transform, none); text-decoration: var(--bkbg-aser-desc-text-decoration, none); line-height: var(--bkbg-aser-desc-line-height-d, var(--bkbg-aser-desc-line-height, 1.55)); letter-spacing: var(--bkbg-aser-desc-letter-spacing-d, var(--bkbg-aser-desc-letter-spacing, normal)); word-spacing: var(--bkbg-aser-desc-word-spacing-d, var(--bkbg-aser-desc-word-spacing, normal)); margin: 0; } /* ── Progress ─────────────────────────────────────────────────── */ .bkbg-aser-progress-wrap { margin-bottom: 18px; display: flex; align-items: center; gap: 12px; } .bkbg-aser-progress-bar { flex: 1; height: 6px; border-radius: 99px; overflow: hidden; } .bkbg-aser-progress-fill { height: 100%; border-radius: 99px; transition: width .3s ease; } .bkbg-aser-progress-label { font-size: 12px; white-space: nowrap; flex-shrink: 0; } /* ── List ────────────────────────────────────────────────────── */ .bkbg-aser-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; } .bkbg-aser-layout-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; } @media (max-width: 600px) { .bkbg-aser-layout-grid { grid-template-columns: 1fr; } } /* \u2500\u2500 Typography responsive \u2500\u2500 */ @media (max-width: 1024px) { .bkbg-aser-title { font-size: var(--bkbg-aser-title-font-size-t, var(--bkbg-aser-title-font-size-d, var(--bkbg-aser-title-font-size, var(--bkbg-aser-title-sz, 20px)))); line-height: var(--bkbg-aser-title-line-height-t, var(--bkbg-aser-title-line-height-d, var(--bkbg-aser-title-line-height, 1.3))); letter-spacing: var(--bkbg-aser-title-letter-spacing-t, var(--bkbg-aser-title-letter-spacing-d, var(--bkbg-aser-title-letter-spacing, normal))); word-spacing: var(--bkbg-aser-title-word-spacing-t, var(--bkbg-aser-title-word-spacing-d, var(--bkbg-aser-title-word-spacing, normal))); } .bkbg-aser-desc { font-size: var(--bkbg-aser-desc-font-size-t, var(--bkbg-aser-desc-font-size-d, var(--bkbg-aser-desc-font-size, var(--bkbg-aser-desc-sz, 14px)))); line-height: var(--bkbg-aser-desc-line-height-t, var(--bkbg-aser-desc-line-height-d, var(--bkbg-aser-desc-line-height, 1.55))); letter-spacing: var(--bkbg-aser-desc-letter-spacing-t, var(--bkbg-aser-desc-letter-spacing-d, var(--bkbg-aser-desc-letter-spacing, normal))); word-spacing: var(--bkbg-aser-desc-word-spacing-t, var(--bkbg-aser-desc-word-spacing-d, var(--bkbg-aser-desc-word-spacing, normal))); } .bkbg-aser-part-title { font-size: var(--bkbg-aser-pt-font-size-t, var(--bkbg-aser-pt-font-size-d, var(--bkbg-aser-pt-font-size, var(--bkbg-aser-pt-sz, 14px)))); line-height: var(--bkbg-aser-pt-line-height-t, var(--bkbg-aser-pt-line-height-d, var(--bkbg-aser-pt-line-height, 1.4))); letter-spacing: var(--bkbg-aser-pt-letter-spacing-t, var(--bkbg-aser-pt-letter-spacing-d, var(--bkbg-aser-pt-letter-spacing, normal))); word-spacing: var(--bkbg-aser-pt-word-spacing-t, var(--bkbg-aser-pt-word-spacing-d, var(--bkbg-aser-pt-word-spacing, normal))); } .bkbg-aser-excerpt { font-size: var(--bkbg-aser-exc-font-size-t, var(--bkbg-aser-exc-font-size-d, var(--bkbg-aser-exc-font-size, var(--bkbg-aser-exc-sz, 12px)))); line-height: var(--bkbg-aser-exc-line-height-t, var(--bkbg-aser-exc-line-height-d, var(--bkbg-aser-exc-line-height, 1.45))); letter-spacing: var(--bkbg-aser-exc-letter-spacing-t, var(--bkbg-aser-exc-letter-spacing-d, var(--bkbg-aser-exc-letter-spacing, normal))); word-spacing: var(--bkbg-aser-exc-word-spacing-t, var(--bkbg-aser-exc-word-spacing-d, var(--bkbg-aser-exc-word-spacing, normal))); } } @media (max-width: 767px) { .bkbg-aser-title { font-size: var(--bkbg-aser-title-font-size-m, var(--bkbg-aser-title-font-size-t, var(--bkbg-aser-title-font-size-d, var(--bkbg-aser-title-font-size, var(--bkbg-aser-title-sz, 20px))))); line-height: var(--bkbg-aser-title-line-height-m, var(--bkbg-aser-title-line-height-t, var(--bkbg-aser-title-line-height-d, var(--bkbg-aser-title-line-height, 1.3)))); letter-spacing: var(--bkbg-aser-title-letter-spacing-m, var(--bkbg-aser-title-letter-spacing-t, var(--bkbg-aser-title-letter-spacing-d, var(--bkbg-aser-title-letter-spacing, normal)))); word-spacing: var(--bkbg-aser-title-word-spacing-m, var(--bkbg-aser-title-word-spacing-t, var(--bkbg-aser-title-word-spacing-d, var(--bkbg-aser-title-word-spacing, normal)))); } .bkbg-aser-desc { font-size: var(--bkbg-aser-desc-font-size-m, var(--bkbg-aser-desc-font-size-t, var(--bkbg-aser-desc-font-size-d, var(--bkbg-aser-desc-font-size, var(--bkbg-aser-desc-sz, 14px))))); line-height: var(--bkbg-aser-desc-line-height-m, var(--bkbg-aser-desc-line-height-t, var(--bkbg-aser-desc-line-height-d, var(--bkbg-aser-desc-line-height, 1.55)))); letter-spacing: var(--bkbg-aser-desc-letter-spacing-m, var(--bkbg-aser-desc-letter-spacing-t, var(--bkbg-aser-desc-letter-spacing-d, var(--bkbg-aser-desc-letter-spacing, normal)))); word-spacing: var(--bkbg-aser-desc-word-spacing-m, var(--bkbg-aser-desc-word-spacing-t, var(--bkbg-aser-desc-word-spacing-d, var(--bkbg-aser-desc-word-spacing, normal)))); } .bkbg-aser-part-title { font-size: var(--bkbg-aser-pt-font-size-m, var(--bkbg-aser-pt-font-size-t, var(--bkbg-aser-pt-font-size-d, var(--bkbg-aser-pt-font-size, var(--bkbg-aser-pt-sz, 14px))))); line-height: var(--bkbg-aser-pt-line-height-m, var(--bkbg-aser-pt-line-height-t, var(--bkbg-aser-pt-line-height-d, var(--bkbg-aser-pt-line-height, 1.4)))); letter-spacing: var(--bkbg-aser-pt-letter-spacing-m, var(--bkbg-aser-pt-letter-spacing-t, var(--bkbg-aser-pt-letter-spacing-d, var(--bkbg-aser-pt-letter-spacing, normal)))); word-spacing: var(--bkbg-aser-pt-word-spacing-m, var(--bkbg-aser-pt-word-spacing-t, var(--bkbg-aser-pt-word-spacing-d, var(--bkbg-aser-pt-word-spacing, normal)))); } .bkbg-aser-excerpt { font-size: var(--bkbg-aser-exc-font-size-m, var(--bkbg-aser-exc-font-size-t, var(--bkbg-aser-exc-font-size-d, var(--bkbg-aser-exc-font-size, var(--bkbg-aser-exc-sz, 12px))))); line-height: var(--bkbg-aser-exc-line-height-m, var(--bkbg-aser-exc-line-height-t, var(--bkbg-aser-exc-line-height-d, var(--bkbg-aser-exc-line-height, 1.45)))); letter-spacing: var(--bkbg-aser-exc-letter-spacing-m, var(--bkbg-aser-exc-letter-spacing-t, var(--bkbg-aser-exc-letter-spacing-d, var(--bkbg-aser-exc-letter-spacing, normal)))); word-spacing: var(--bkbg-aser-exc-word-spacing-m, var(--bkbg-aser-exc-word-spacing-t, var(--bkbg-aser-exc-word-spacing-d, var(--bkbg-aser-exc-word-spacing, normal)))); } } .bkbg-aser-item { display: flex; align-items: flex-start; gap: 10px; border: 1px solid; padding: 10px 14px; text-decoration: none; position: relative; transition: filter .15s, transform .1s; } .bkbg-aser-item:not(.is-current):hover { filter: brightness(.97); transform: translateX(2px); } .bkbg-aser-item.is-current { border-left-width: 3px; padding-left: 12px; } /* Compact style overrides */ .bkbg-aser-layout-compact .bkbg-aser-item { padding: 6px 10px; } /* ── Number badge ─────────────────────────────────────────────── */ .bkbg-aser-num { flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; margin-top: 1px; } /* ── Item body ────────────────────────────────────────────────── */ .bkbg-aser-item-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; } .bkbg-aser-part-title { font-family: var(--bkbg-aser-pt-font-family, inherit); font-size: var(--bkbg-aser-pt-font-size-d, var(--bkbg-aser-pt-font-size, var(--bkbg-aser-pt-sz, 14px))); font-weight: var(--bkbg-aser-pt-font-weight, 600); font-style: var(--bkbg-aser-pt-font-style, normal); text-transform: var(--bkbg-aser-pt-text-transform, none); text-decoration: var(--bkbg-aser-pt-text-decoration, none); line-height: var(--bkbg-aser-pt-line-height-d, var(--bkbg-aser-pt-line-height, 1.4)); letter-spacing: var(--bkbg-aser-pt-letter-spacing-d, var(--bkbg-aser-pt-letter-spacing, normal)); word-spacing: var(--bkbg-aser-pt-word-spacing-d, var(--bkbg-aser-pt-word-spacing, normal)); } .bkbg-aser-excerpt { font-family: var(--bkbg-aser-exc-font-family, inherit); font-size: var(--bkbg-aser-exc-font-size-d, var(--bkbg-aser-exc-font-size, var(--bkbg-aser-exc-sz, 12px))); font-weight: var(--bkbg-aser-exc-font-weight, 400); font-style: var(--bkbg-aser-exc-font-style, normal); text-transform: var(--bkbg-aser-exc-text-transform, none); text-decoration: var(--bkbg-aser-exc-text-decoration, none); line-height: var(--bkbg-aser-exc-line-height-d, var(--bkbg-aser-exc-line-height, 1.45)); letter-spacing: var(--bkbg-aser-exc-letter-spacing-d, var(--bkbg-aser-exc-letter-spacing, normal)); word-spacing: var(--bkbg-aser-exc-word-spacing-d, var(--bkbg-aser-exc-word-spacing, normal)); } .bkbg-aser-layout-compact .bkbg-aser-excerpt { display: none; } /* ── Current badge ────────────────────────────────────────────── */ .bkbg-aser-current-badge { flex-shrink: 0; font-size: 10px; font-weight: 700; color: #fff; padding: 2px 7px; border-radius: 20px; align-self: flex-start; margin-top: 2px; } /* ── Editor accordion ────────────────────────────────────────── */ .bkbg-aser-part-ed { margin-bottom: 6px; border: 1px solid #e2e8f0; border-radius: 6px; overflow: hidden; } .bkbg-aser-part-ed-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; cursor: pointer; background: #f8fafc; border-left: 3px solid; font-size: 12px; gap: 8px; user-select: none; } .bkbg-aser-part-ed-header:hover { background: #f1f5f9; } .bkbg-aser-part-ed-fields { padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; background: #fff; } /* Editor: inline editing helpers */ .bkbg-aser-block [contenteditable]:hover { outline: 2px dashed rgba(59,130,246,.4); outline-offset: 2px; }