:root{
  --bf-bg:#fff;--bf-page:#f7f9fc;--bf-panel:#fff;--bf-line:#e8edf5;--bf-line-strong:#d7e0ec;
  --bf-text:#1f2937;--bf-title:#111827;--bf-muted:#6b7280;--bf-soft:#f4f7fb;
  --bf-brand:#fb7299;--bf-blue:#23ade5;--bf-green:#10b981;--bf-warning:#f59e0b;
  --bf-radius:16px;--bf-radius-sm:12px;--bf-card-radius:18px;--bf-shadow:0 12px 34px rgba(15,23,42,.08);
  --bf-grid-cols:4;
}
*{box-sizing:border-box}
html{background:var(--bf-page)}
body{margin:0;background:var(--bf-page);color:var(--bf-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
.bf-iframe-body{background:#fff;overflow:hidden}
.bf-shell{max-width:1120px;margin:0 auto;padding:32px 16px}
.bf-embed-root{max-width:1120px;margin:0 auto;padding:18px}
.bf-public{display:grid;gap:16px}
.bf-panel,.bf-hero,.bf-empty,.bf-featured,.bf-loading-card{background:var(--bf-panel);border:1px solid var(--bf-line);border-radius:var(--bf-radius);box-shadow:var(--bf-shadow);padding:24px}
.bf-hero{position:relative;overflow:hidden;margin-bottom:0;background:linear-gradient(135deg,#fff 0%,#fff6fa 55%,#f1fbff 100%)}
.bf-hero:after{content:"";position:absolute;right:-44px;top:-54px;width:190px;height:190px;border-radius:999px;background:linear-gradient(135deg,rgba(251,114,153,.18),rgba(35,173,229,.18));pointer-events:none}
.bf-hero h1,.bf-panel h1{position:relative;margin:8px 0 10px;font-size:30px;line-height:1.2;color:var(--bf-title)}
.bf-hero p,.bf-muted{position:relative;color:var(--bf-muted);line-height:1.7;margin:0}
.bf-hero-intro{max-width:760px;margin-top:10px!important}
.bf-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--bf-brand);font-weight:800}
.bf-section-title{display:flex;gap:10px;align-items:baseline;margin-bottom:12px}.bf-section-title strong{color:var(--bf-title);font-size:18px}.bf-section-title span{color:var(--bf-muted);font-size:13px}
.bf-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px 140px;gap:12px;margin:0}.bf-toolbar label{display:grid;gap:7px;color:var(--bf-muted);font-size:13px;font-weight:700}.bf-input,input,select{width:100%;border:1px solid var(--bf-line);border-radius:14px;padding:11px 13px;background:#fff;color:var(--bf-text);outline:none;transition:border-color .18s,box-shadow .18s,background .18s}.bf-input:focus,input:focus,select:focus{border-color:rgba(35,173,229,.72);box-shadow:0 0 0 4px rgba(35,173,229,.10)}
.bf-tabs{display:flex;gap:10px;overflow:auto;padding:4px 1px 8px;scrollbar-width:thin}.bf-tabs button{border:1px solid var(--bf-line);background:#fff;border-radius:999px;padding:9px 14px;white-space:nowrap;color:var(--bf-text);transition:all .18s;box-shadow:0 4px 14px rgba(15,23,42,.04)}.bf-tabs button:hover{border-color:rgba(251,114,153,.45);transform:translateY(-1px)}.bf-tabs button.is-active{border-color:transparent;background:linear-gradient(135deg,var(--bf-brand),var(--bf-blue));color:#fff;box-shadow:0 8px 20px rgba(251,114,153,.25)}.bf-tabs em{margin-left:7px;font-style:normal;font-size:12px;opacity:.78}
.bf-featured{padding:18px}.bf-featured-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.bf-mini-card{min-width:0;text-align:left;border:1px solid var(--bf-line);border-radius:16px;background:#fff;padding:8px;display:grid;gap:8px;transition:transform .18s,box-shadow .18s,border-color .18s}.bf-mini-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.08);border-color:rgba(35,173,229,.38)}.bf-mini-card img,.bf-mini-card>span{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;background:var(--bf-soft);display:grid;place-items:center;color:var(--bf-brand);font-weight:900}.bf-mini-card strong{font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--bf-title)}
.bf-card-grid{display:grid;grid-template-columns:repeat(var(--bf-grid-cols),minmax(0,1fr));gap:16px}.bf-card{position:relative;overflow:hidden;border:1px solid var(--bf-line);border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.06);transition:transform .18s,box-shadow .18s,border-color .18s}.bf-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,42,.10);border-color:rgba(35,173,229,.36)}.bf-card-click{position:absolute;inset:0;z-index:2;border:0;background:transparent;text-indent:-999px}.bf-cover-wrap{position:relative;background:var(--bf-soft);aspect-ratio:16/9;overflow:hidden}.bf-cover{width:100%;height:100%;object-fit:cover;display:block}.bf-cover-fallback{display:grid;place-items:center;color:var(--bf-brand);font-weight:900;letter-spacing:.08em;background:linear-gradient(135deg,#fff1f7,#effaff)}.bf-duration{position:absolute;right:8px;bottom:8px;background:rgba(17,24,39,.76);color:#fff;border-radius:9px;padding:3px 7px;font-size:12px}.bf-card-body{padding:14px;display:grid;gap:9px}.bf-card h3{font-size:15px;line-height:1.48;margin:0;color:var(--bf-title);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bf-card p{margin:0;color:var(--bf-muted);font-size:13px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bf-tags{display:flex;flex-wrap:wrap;gap:6px}.bf-tags span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;background:var(--bf-soft);color:#526070;padding:4px 8px;font-size:12px}.bf-meta{display:flex;gap:9px;flex-wrap:wrap;color:var(--bf-muted);font-size:12px}.bf-meta span{white-space:nowrap}.bf-card.is-skeleton{box-shadow:none}.bf-card.is-skeleton .bf-cover{background:linear-gradient(90deg,#eef2f7,#f8fafc,#eef2f7);background-size:200% 100%;animation:bf-shimmer 1.2s infinite}.bf-card.is-skeleton i,.bf-card.is-skeleton b,.bf-card.is-skeleton p{display:block;height:14px;border-radius:99px;background:#eef2f7}.bf-card.is-skeleton b{width:84%}.bf-card.is-skeleton p{width:64%;margin:0}@keyframes bf-shimmer{to{background-position:-200% 0}}
.bf-empty{text-align:center;color:var(--bf-muted)}.bf-empty h2{color:var(--bf-title);margin:8px 0}.bf-empty p{max-width:620px;margin:0 auto 16px;line-height:1.75}.bf-empty-icon{width:50px;height:50px;margin:0 auto;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#fff1f7,#effaff);color:var(--bf-brand);font-size:28px;font-weight:900}.bf-btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;background:linear-gradient(135deg,var(--bf-brand),var(--bf-blue));color:white;text-decoration:none;padding:11px 16px;font-weight:800;cursor:pointer;box-shadow:0 10px 22px rgba(251,114,153,.20)}.bf-btn-ghost{background:#fff;color:var(--bf-brand);border:1px solid var(--bf-line);box-shadow:none}.bf-btn:disabled,.bf-pager button:disabled{opacity:.5;cursor:not-allowed}.bf-alert{border-radius:14px;padding:14px 16px;margin:0;line-height:1.7}.bf-alert-ok{background:#eefdf5;border:1px solid #b7f0d1;color:#0f7a45}.bf-alert-error{background:#fff1f2;border:1px solid #fecdd3;color:#be123c}.bf-loading-card{display:flex;gap:12px;align-items:center;color:var(--bf-muted)}.bf-spinner{width:20px;height:20px;border-radius:50%;border:3px solid #e5e7eb;border-top-color:var(--bf-brand);animation:bf-spin .8s linear infinite}@keyframes bf-spin{to{transform:rotate(360deg)}}
.bf-pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--bf-line);border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(15,23,42,.05)}.bf-pager button,.bf-jump button{border:1px solid var(--bf-line);background:#fff;border-radius:12px;padding:9px 12px;color:var(--bf-text);font-weight:700}.bf-pager span{color:var(--bf-muted);font-size:14px}.bf-pager strong{color:var(--bf-brand)}.bf-jump{display:flex;gap:8px}.bf-jump input{width:92px;padding:9px 10px;border-radius:12px}.bf-jump button{background:var(--bf-title);color:#fff;border-color:var(--bf-title)}
.bf-drawer-mask{position:fixed;inset:0;z-index:999999;background:rgba(15,23,42,.42);display:flex;justify-content:flex-end;animation:bf-fade .15s ease-out}.bf-drawer{width:min(520px,100%);height:100%;overflow:auto;background:#fff;box-shadow:-18px 0 42px rgba(15,23,42,.20);position:relative;animation:bf-slide .2s ease-out}.bf-drawer-close{position:sticky;top:12px;left:100%;z-index:3;margin:12px 12px 0 auto;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--bf-line);border-radius:999px;background:rgba(255,255,255,.92);font-size:28px;line-height:1;color:var(--bf-muted)}.bf-drawer-cover{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--bf-soft)}.bf-drawer-body{padding:22px}.bf-drawer h2{margin:8px 0 12px;color:var(--bf-title);line-height:1.35}.bf-drawer p{line-height:1.75;color:var(--bf-muted)}.bf-detail-meta{display:grid;gap:8px;border:1px solid var(--bf-line);border-radius:16px;background:var(--bf-soft);padding:14px;margin:16px 0;color:#526070;font-size:14px}.bf-drawer-actions{display:flex;gap:10px;flex-wrap:wrap}.bf-drawer-actions .bf-btn{min-width:130px}@keyframes bf-fade{from{opacity:0}to{opacity:1}}@keyframes bf-slide{from{transform:translateX(40px)}to{transform:translateX(0)}}
.bf-check-list{display:grid;gap:10px}.bf-check{display:grid;grid-template-columns:28px 1fr;gap:4px 10px;align-items:center;border:1px solid var(--bf-line);border-radius:14px;padding:12px}.bf-check span{grid-row:1/3;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:800}.bf-check small{color:var(--bf-muted)}.bf-check.is-ok span{background:#dcfce7;color:#15803d}.bf-check.is-bad span{background:#ffe4e6;color:#be123c}.bf-form{display:grid;gap:14px;margin-top:18px}.bf-form label{display:grid;gap:8px;font-weight:700}.bf-install{max-width:820px;margin:0 auto}
@media(max-width:980px){:root{--bf-grid-cols:3}.bf-card-grid{grid-template-columns:repeat(min(var(--bf-grid-cols),3),minmax(0,1fr))}.bf-featured-row{grid-template-columns:repeat(3,minmax(0,1fr))}.bf-toolbar{grid-template-columns:1fr 1fr}.bf-search{grid-column:1/-1}}
@media(max-width:700px){:root{--bf-grid-cols:2}.bf-toolbar{grid-template-columns:1fr}.bf-hero h1{font-size:24px}.bf-shell{padding:18px 12px}.bf-embed-root{padding:12px}.bf-card-grid{gap:12px}.bf-card-body{padding:12px}.bf-featured-row{grid-template-columns:repeat(2,minmax(0,1fr))}.bf-pager{justify-content:stretch}.bf-pager>button,.bf-jump,.bf-jump input,.bf-jump button{flex:1}.bf-drawer{width:100%}}
@media(max-width:430px){:root{--bf-grid-cols:1}.bf-card-grid{grid-template-columns:1fr}.bf-featured-row{grid-template-columns:1fr}.bf-tabs button{padding:8px 12px}.bf-hero,.bf-panel,.bf-empty{padding:18px}}

/* v1.0.2 UI polish and logic badges */
.bf-public{background:radial-gradient(circle at top left,rgba(251,114,153,.06),transparent 32%),radial-gradient(circle at top right,rgba(35,173,229,.06),transparent 28%)}
.bf-public .bf-hero{border-color:rgba(251,114,153,.16);box-shadow:0 14px 40px rgba(15,23,42,.07)}
.bf-public-toolbar{grid-template-columns:minmax(240px,1fr) 190px;align-items:end;background:#fff;border:1px solid var(--bf-line);border-radius:18px;padding:14px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.bf-card{border-radius:20px}.bf-cover-wrap:after{content:"";position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(180deg,transparent,rgba(15,23,42,.20));pointer-events:none}.bf-card h3{font-size:15.5px}.bf-card-body{background:linear-gradient(180deg,#fff,#fff)}
.bf-pin-badge{position:absolute;left:9px;top:9px;z-index:1;border-radius:999px;background:linear-gradient(135deg,var(--bf-brand),#ff9bbd);color:#fff;font-size:12px;font-weight:900;padding:4px 9px;box-shadow:0 8px 18px rgba(251,114,153,.28)}
.bf-featured{border-color:rgba(251,114,153,.18);background:linear-gradient(135deg,#fff,#fff8fb)}
.bf-more-box{display:grid;place-items:center;gap:10px;background:#fff;border:1px solid var(--bf-line);border-radius:18px;padding:18px;box-shadow:0 8px 22px rgba(15,23,42,.05);text-align:center}.bf-more-box p{margin:0;color:var(--bf-muted);line-height:1.7}.bf-more-btn{display:inline-flex;align-items:center;justify-content:center;min-width:180px;border-radius:999px;padding:12px 20px;background:linear-gradient(135deg,var(--bf-brand),var(--bf-blue));color:#fff;text-decoration:none;font-weight:900;box-shadow:0 12px 26px rgba(251,114,153,.22);transition:transform .18s,box-shadow .18s}.bf-more-btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(251,114,153,.28)}
.bf-drawer-close{position:absolute;right:14px;top:14px;left:auto;margin:0;cursor:pointer;box-shadow:0 8px 18px rgba(15,23,42,.10)}.bf-drawer-close:hover{color:var(--bf-brand);border-color:rgba(251,114,153,.38)}
@media(max-width:700px){.bf-public-toolbar{grid-template-columns:1fr}.bf-more-btn{width:100%}}


.bf-tab-badge{display:inline-flex;align-items:center;margin-right:6px;padding:2px 6px;border-radius:999px;background:#fff1f4;color:#fb7299;font-size:11px;font-weight:700;border:1px solid rgba(251,114,153,.18)}
.bf-category-tabs button{gap:6px;}

/* v1.0.6 embed stability */
.bf-iframe-body{margin:0;background:#fff;min-height:0;overflow:hidden;width:100%}
.bf-iframe-body .bf-embed-root{width:100%;max-width:1120px;margin:0 auto;padding:18px;min-height:0}
.bf-embed-root-mount{width:100%;max-width:1120px;margin:0 auto;padding:18px}
.bf-public{width:100%;min-width:0}
.bf-public *{min-width:0}
@media(max-width:760px){.bf-iframe-body .bf-embed-root,.bf-embed-root-mount{padding:12px}.bf-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bf-featured-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.bf-card-grid{grid-template-columns:1fr}.bf-featured-row{grid-template-columns:1fr}}

/* v1.0.7 page-level radius chain
   后台页面管理 border_radius -> /api/public.php?action=page -> embed-app CSS variables.
   Only affects the current page slug, so different embedded pages can use different corner radii. */
.bf-public .bf-hero,
.bf-public .bf-panel,
.bf-public .bf-empty,
.bf-public .bf-featured,
.bf-public .bf-loading-card,
.bf-public .bf-public-toolbar,
.bf-public .bf-pager,
.bf-public .bf-more-box{
  border-radius:var(--bf-radius,16px);
}
.bf-public .bf-card{
  border-radius:var(--bf-card-radius,18px);
}
.bf-public .bf-mini-card,
.bf-public .bf-detail-meta{
  border-radius:var(--bf-card-radius,18px);
}
.bf-public .bf-mini-card img,
.bf-public .bf-mini-card>span,
.bf-public .bf-cover-wrap,
.bf-public .bf-cover{
  border-radius:var(--bf-radius-sm,12px);
}


/* v1.0.8 mobile adaptive UI + page radius verification
   链路：后台页面管理 border_radius -> pages.border_radius -> public page API -> embed-app -> --bf-radius 系列变量。
   本段只做表现层兜底，不改变后台数据；不同 slug 仍可单独使用不同圆角。 */
html,body{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
.bf-iframe-body,.bf-shell,.bf-embed-root,.bf-embed-root-mount,.bf-public{max-width:100%;overflow-x:hidden}
.bf-public{container-type:inline-size;gap:clamp(10px,2.5vw,16px)}
.bf-public .bf-hero,
.bf-public .bf-panel,
.bf-public .bf-empty,
.bf-public .bf-featured,
.bf-public .bf-loading-card,
.bf-public .bf-public-toolbar,
.bf-public .bf-pager,
.bf-public .bf-more-box{border-radius:var(--bf-radius,16px)}
.bf-public .bf-card{border-radius:var(--bf-card-radius,18px)}
.bf-public .bf-mini-card,
.bf-public .bf-detail-meta{border-radius:var(--bf-card-radius,18px)}
.bf-public .bf-cover-wrap,
.bf-public .bf-cover,
.bf-public .bf-mini-card img,
.bf-public .bf-mini-card>span{border-radius:var(--bf-radius-sm,12px)}
.bf-public input,.bf-public select,.bf-public textarea{max-width:100%;min-width:0}
.bf-public-toolbar{grid-template-columns:minmax(0,1fr) minmax(150px,190px)}
.bf-tabs{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding-bottom:10px}
.bf-tabs button{display:inline-flex;align-items:center;max-width:86vw;min-height:38px;text-overflow:ellipsis;overflow:hidden}
.bf-card-grid{grid-template-columns:repeat(var(--bf-grid-cols),minmax(0,1fr))}
.bf-card,.bf-mini-card{min-width:0}.bf-card h3,.bf-mini-card strong{overflow-wrap:anywhere}.bf-tags span{min-width:0}
.bf-pager{width:100%;min-width:0}.bf-jump{min-width:0}.bf-jump input{min-width:0}
.bf-drawer-mask{height:100dvh;max-width:100vw;overflow:hidden}.bf-drawer{max-width:100vw;height:100dvh}.bf-drawer-body{padding-bottom:calc(22px + env(safe-area-inset-bottom,0px))}
@media (hover:none){.bf-card:hover,.bf-mini-card:hover,.bf-more-btn:hover{transform:none}}
@media(max-width:900px){
  .bf-shell{padding:24px 14px}.bf-embed-root,.bf-embed-root-mount{padding:14px}
  .bf-public .bf-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bf-public .bf-featured-row{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .bf-shell{padding:16px 10px}.bf-embed-root,.bf-embed-root-mount,.bf-iframe-body .bf-embed-root{padding:10px}
  .bf-public{gap:12px}
  .bf-public .bf-hero,.bf-public .bf-panel,.bf-public .bf-empty,.bf-public .bf-featured,.bf-public .bf-loading-card{padding:16px}
  .bf-hero h1,.bf-panel h1{font-size:22px;line-height:1.25}.bf-kicker{font-size:11px;letter-spacing:.06em}.bf-hero p,.bf-hero-intro{font-size:14px;line-height:1.65}
  .bf-public-toolbar{grid-template-columns:1fr;padding:12px;gap:10px}.bf-toolbar label{gap:6px}.bf-input,input,select{padding:10px 12px;border-radius:max(10px,var(--bf-radius-sm,12px))}
  .bf-tabs{gap:8px;margin:0 -2px;padding-left:2px;padding-right:2px}.bf-tabs button{padding:8px 11px;font-size:13px;max-width:78vw}
  .bf-public .bf-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .bf-public .bf-featured-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .bf-card-body{padding:11px;gap:7px}.bf-card h3{font-size:14px;-webkit-line-clamp:2}.bf-card p{font-size:12px;-webkit-line-clamp:2}.bf-meta{gap:6px;font-size:11px}.bf-tags span{font-size:11px;padding:3px 7px}
  .bf-pin-badge{left:7px;top:7px;font-size:11px;padding:3px 7px}.bf-duration{right:7px;bottom:7px;font-size:11px;padding:2px 6px}
  .bf-pager{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.bf-pager span{grid-column:1/-1;order:-1;text-align:center}.bf-pager button{width:100%}.bf-jump{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%}.bf-jump input{width:100%}
  .bf-more-box{padding:14px}.bf-more-btn{width:100%;min-width:0}.bf-drawer{width:100%;border-radius:0}.bf-drawer-close{width:42px;height:42px;right:10px;top:10px}.bf-drawer-body{padding:18px}.bf-drawer h2{font-size:20px}
}
@media(max-width:480px){
  .bf-shell{padding:12px 8px}.bf-embed-root,.bf-embed-root-mount,.bf-iframe-body .bf-embed-root{padding:8px}
  .bf-public .bf-card-grid{grid-template-columns:1fr;gap:10px}
  .bf-public .bf-featured-row{grid-template-columns:1fr}
  .bf-public .bf-hero,.bf-public .bf-panel,.bf-public .bf-empty,.bf-public .bf-featured,.bf-public .bf-loading-card{padding:14px}
  .bf-hero:after{width:130px;height:130px;right:-40px;top:-44px}.bf-hero h1{font-size:20px}.bf-section-title{display:grid;gap:3px}
  .bf-tabs button{max-width:84vw}.bf-card h3{font-size:14.5px}.bf-card p{font-size:12.5px}.bf-drawer-body{padding:16px}
}
@media(max-width:360px){
  .bf-embed-root,.bf-embed-root-mount,.bf-iframe-body .bf-embed-root{padding:6px}.bf-tabs button{font-size:12px;padding:7px 10px}.bf-pager{padding:10px}.bf-hero h1{font-size:19px}
}

/* v1.0.8 radius inheritance for drawer outside .bf-public */
.bf-drawer{border-top-left-radius:var(--bf-radius,16px);border-bottom-left-radius:var(--bf-radius,16px)}
.bf-drawer .bf-detail-meta{border-radius:var(--bf-card-radius,18px)}
@media(max-width:720px){.bf-drawer{border-radius:0}}

/* v1.0.9 p/embed unified UI + embed completeness
   逻辑：p 页面与 embed 页面统一读取后台页面设置；JS 生成 iframe 和 iframe 内部均应用页面圆角。 */
.bf-page-body,.bf-embed-page-body{background:var(--bf-page)}
.bf-iframe-body.bf-embed-page-body{background:#fff}
.bf-page-root,.bf-embed-frame-root{width:100%;max-width:1120px;margin:0 auto}
.bf-public-page,.bf-public-embed{background:radial-gradient(circle at top left,rgba(251,114,153,.06),transparent 32%),radial-gradient(circle at top right,rgba(35,173,229,.06),transparent 28%)}
.bf-public .bf-category-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin;padding:6px 2px 12px;margin:0;min-height:50px}
.bf-public .bf-category-tabs::-webkit-scrollbar{height:8px}.bf-public .bf-category-tabs::-webkit-scrollbar-thumb{background:#dbe4ef;border-radius:999px}.bf-public .bf-category-tabs button{flex:0 0 auto;max-width:min(260px,82vw);min-width:max-content;line-height:1.2}
.bf-public .bf-card-grid[aria-label="收藏内容列表"]{display:grid;grid-template-columns:repeat(var(--bf-grid-cols),minmax(0,1fr));gap:clamp(12px,2vw,18px);padding:2px 2px 8px;max-height:none;overflow-x:clip;overflow-y:visible;align-items:start;scrollbar-gutter:stable both-edges}
.bf-public .bf-card{min-width:0;margin:0}.bf-public .bf-card-body{padding:clamp(12px,1.8vw,15px);gap:8px}.bf-public .bf-cover-wrap{border-bottom-left-radius:0;border-bottom-right-radius:0}.bf-public .bf-card h3{min-height:2.95em}.bf-public .bf-card p{min-height:3.1em}.bf-public .bf-meta{row-gap:6px}.bf-public .bf-tags{min-height:24px}
.bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:repeat(4,minmax(0,1fr));max-height:min(6800px,6600dvh);overflow-y:auto;overflow-x:clip;gap:14px;padding:2px 4px 10px 2px}
.bf-public-embed .bf-card-body{padding:12px;gap:7px}.bf-public-embed .bf-card h3{font-size:14.5px}.bf-public-embed .bf-card p{font-size:12.5px}.bf-public-embed .bf-meta{font-size:11.5px;gap:6px}.bf-public-embed .bf-tags span{font-size:11.5px;padding:3px 7px}
.bf-public-embed .bf-featured-row{grid-template-columns:repeat(4,minmax(0,1fr))}
.bf-public-embed .bf-hero,.bf-public-embed .bf-featured,.bf-public-embed .bf-public-toolbar,.bf-public-embed .bf-pager,.bf-public-embed .bf-more-box{box-shadow:0 8px 24px rgba(15,23,42,.05)}
.bf-public-embed .bf-hero{padding:20px}.bf-public-embed .bf-hero h1{font-size:26px}.bf-public-embed .bf-hero-intro{display:none}.bf-public-embed .bf-featured{padding:16px}
@media(max-width:900px){
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
  .bf-public-embed .bf-featured-row{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],.bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:2px 2px 8px}
  .bf-public .bf-category-tabs{gap:8px;padding-bottom:10px}.bf-public .bf-category-tabs button{max-width:78vw;min-height:38px;padding:8px 11px}
  .bf-public .bf-card-body{padding:11px;gap:7px}.bf-public .bf-card h3{font-size:14px;min-height:auto}.bf-public .bf-card p{font-size:12px;min-height:auto}.bf-public .bf-tags{min-height:0}
  .bf-public-embed .bf-hero{padding:16px}.bf-public-embed .bf-hero h1{font-size:22px}
}
@media(max-width:480px){
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],.bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:1fr;gap:12px;padding:2px 0 8px}
  .bf-public .bf-category-tabs button{max-width:84vw}.bf-public .bf-card-body{padding:12px}.bf-public .bf-card h3{font-size:15px}.bf-public .bf-card p{font-size:13px}
}


/* v1.0.11 tablet/mobile layout fix
   清晰链路：CSS 列数断点与 embed-app.js 的 per_page 断点保持一致。
   >1100: 使用后台 grid_cols/per_page；721-1100: 3 列 + 9 条；381-720: 2 列 + 8 条；<=380: 1 列 + 6 条。
   修复点：平板横屏 1024px 不再误走桌面列数；手机 390/414/430px 不再过早变单列。 */
.bf-public .bf-card-grid[aria-label="收藏内容列表"]{
  width:100%;
  min-width:0;
  gap:clamp(14px,1.8vw,20px);
  padding:4px 4px 14px;
  overflow-x:clip;
  overflow-y:visible;
  align-items:start;
}
.bf-public .bf-card{
  min-width:0;
  height:auto;
  min-height:0;
  overflow:hidden;
  border-radius:var(--bf-card-radius,18px);
}
.bf-public .bf-card-body{
  min-width:0;
  height:auto;
  min-height:0;
  padding:clamp(12px,1.7vw,16px);
  gap:clamp(7px,1vw,10px);
}
.bf-public .bf-card h3,
.bf-public .bf-card p{
  min-width:0;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.bf-public .bf-card h3{
  min-height:0;
  line-height:1.45;
}
.bf-public .bf-card p{
  min-height:0;
  line-height:1.55;
}
.bf-public .bf-tags,
.bf-public .bf-meta{
  min-width:0;
  max-width:100%;
}
.bf-public .bf-meta span{
  min-width:0;
  white-space:normal;
}
.bf-public .bf-category-tabs{
  overflow-x:auto;
  overflow-y:hidden;
  padding:6px 4px 12px;
  margin:0;
}

@media (min-width:721px) and (max-width:1100px){
  .bf-shell{padding:24px 14px;}
  .bf-embed-root,.bf-embed-root-mount,.bf-iframe-body .bf-embed-root{padding:14px;}
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
  }
  .bf-public-page .bf-featured-row,
  .bf-public .bf-featured-row{grid-template-columns:repeat(3,minmax(0,1fr));}
  .bf-public .bf-card h3{-webkit-line-clamp:2;font-size:14.5px;}
  .bf-public .bf-card p{-webkit-line-clamp:2;font-size:12.5px;}
  .bf-public .bf-card-body{padding:12px;gap:8px;}
}

@media (min-width:381px) and (max-width:720px){
  .bf-shell{padding:16px 10px;}
  .bf-embed-root,.bf-embed-root-mount,.bf-iframe-body .bf-embed-root{padding:10px;}
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    padding:4px 2px 12px;
  }
  .bf-public .bf-featured-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .bf-public .bf-card-body{padding:11px;gap:7px;}
  .bf-public .bf-card h3{font-size:13.5px;line-height:1.42;-webkit-line-clamp:2;}
  .bf-public .bf-card p{font-size:12px;line-height:1.48;-webkit-line-clamp:2;}
  .bf-public .bf-tags span{font-size:11px;padding:3px 6px;}
  .bf-public .bf-meta{font-size:11px;gap:5px;}
  .bf-public .bf-category-tabs button{max-width:78vw;}
}

@media (max-width:380px){
  .bf-shell{padding:12px 8px;}
  .bf-embed-root,.bf-embed-root-mount,.bf-iframe-body .bf-embed-root{padding:8px;}
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:1fr;
    gap:12px;
    padding:4px 0 12px;
  }
  .bf-public .bf-featured-row{grid-template-columns:1fr;}
  .bf-public .bf-card-body{padding:12px;gap:8px;}
  .bf-public .bf-card h3{font-size:14.5px;line-height:1.45;-webkit-line-clamp:3;}
  .bf-public .bf-card p{font-size:12.5px;line-height:1.55;-webkit-line-clamp:3;}
}

/* 旧版嵌入页密度规则保留为兜底；最终列数由后面的 --bf-active-cols 统一覆盖。 */
@media (min-width:961px){
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
  }
}
@media (min-width:721px) and (max-width:960px){
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:13px;
  }
}

/* v1.0.11-hotfix11：页面级响应式列数 + 内容卡片等高
   清晰链路：后台 pages 响应式设置 -> public page API -> embed-app.js CSS 变量 -> 当前页面网格。
   断点：>1100 PC；721-1100 平板；381-720 手机；<=380 窄屏。 */
.bf-public .bf-card-grid[aria-label="收藏内容列表"]{
  grid-template-columns:repeat(var(--bf-grid-cols,4),minmax(0,1fr));
  grid-auto-rows:1fr;
  align-items:stretch;
  gap:clamp(14px,1.7vw,20px);
  padding:6px 4px 16px;
}
.bf-public .bf-card{
  height:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.bf-public .bf-cover-wrap{
  flex:0 0 auto;
}
.bf-public .bf-card-body{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.bf-public .bf-card h3{
  min-height:calc(1.45em * 2);
  line-height:1.45;
}
.bf-public .bf-card p{
  min-height:calc(1.55em * 2);
  line-height:1.55;
}
.bf-public .bf-tags{
  min-height:26px;
  align-content:flex-start;
}
.bf-public .bf-meta{
  min-height:18px;
  margin-top:auto;
}
.bf-public .bf-meta span{line-height:1.35;}

@media (min-width:721px) and (max-width:1100px){
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public:not(.bf-public-embed) .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:repeat(var(--bf-tablet-cols,3),minmax(0,1fr));
  }
}
@media (min-width:381px) and (max-width:720px){
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public:not(.bf-public-embed) .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:repeat(var(--bf-mobile-cols,2),minmax(0,1fr));
  }
  .bf-public .bf-card h3{min-height:calc(1.42em * 2);}
  .bf-public .bf-card p{min-height:calc(1.48em * 2);}
  .bf-public .bf-tags{min-height:22px;}
}
@media (max-width:380px){
  .bf-public-page .bf-card-grid[aria-label="收藏内容列表"],
  .bf-public:not(.bf-public-embed) .bf-card-grid[aria-label="收藏内容列表"]{
    grid-template-columns:repeat(var(--bf-narrow-cols,1),minmax(0,1fr));
  }
  .bf-public .bf-card h3{min-height:calc(1.45em * 3);}
  .bf-public .bf-card p{min-height:calc(1.55em * 3);}
}

/* 嵌入页面响应式兜底：默认跟随后台页面设置；只有显式 URL/data 参数才固定布局。 */
.bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{
  grid-template-columns:repeat(var(--bf-grid-cols,4),minmax(0,1fr));
  grid-auto-rows:1fr;
  align-items:stretch;
}
@media (min-width:721px) and (max-width:960px){
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:repeat(var(--bf-tablet-cols,3),minmax(0,1fr));}
}
@media (min-width:381px) and (max-width:720px){
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:repeat(var(--bf-mobile-cols,2),minmax(0,1fr));}
}
@media (max-width:380px){
  .bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{grid-template-columns:repeat(var(--bf-narrow-cols,1),minmax(0,1fr));}
}

/* v1.0.12-hotfix12：后台响应式设置强制实装
   页面管理保存的列数不再只依赖 CSS 媒体查询；embed-app.js 会按当前容器宽度计算 --bf-active-cols。
   最终网格统一读取 --bf-active-cols，确保 PC/平板/手机/窄屏的后台设置可以真正生效。 */
.bf-public .bf-card-grid[aria-label="收藏内容列表"]{
  grid-template-columns:repeat(var(--bf-active-cols,var(--bf-grid-cols,4)),minmax(0,1fr)) !important;
  grid-auto-rows:1fr;
  align-items:stretch;
}
.bf-public .bf-card{
  height:100%;
  display:flex;
  flex-direction:column;
}
.bf-public .bf-cover-wrap{
  flex:0 0 auto;
}
.bf-public .bf-card-body{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.bf-public .bf-card h3{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:calc(1.45em * 2);
}
.bf-public .bf-card p{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:calc(1.55em * 2);
}
.bf-public .bf-tags{
  min-height:26px;
}
.bf-public .bf-meta{
  margin-top:auto;
  min-height:20px;
}
.bf-public[data-layout-mode="mobile"] .bf-card-grid[aria-label="收藏内容列表"],
.bf-public[data-layout-mode="narrow"] .bf-card-grid[aria-label="收藏内容列表"]{
  gap:12px;
}
.bf-public[data-layout-mode="narrow"] .bf-card h3{
  -webkit-line-clamp:3;
  min-height:calc(1.45em * 3);
}
.bf-public[data-layout-mode="narrow"] .bf-card p{
  -webkit-line-clamp:3;
  min-height:calc(1.55em * 3);
}


/* v1.0.13-hotfix13：JS 生成 iframe 与后台响应式设置同步
   链路：后台页面管理 -> pages(per_page/grid_cols/各断点设置) -> /api/public.php?action=page
   -> embed-app.js 根据 iframe/组件容器宽度选择 per_page 与 cols -> items API。
   后台默认生成的 JS 嵌入代码不再带 data-per-page/data-grid-cols，避免覆盖页面配置。 */
.bf-public-embed .bf-card-grid[aria-label="收藏内容列表"],
.bf-public-page .bf-card-grid[aria-label="收藏内容列表"]{
  grid-template-columns:repeat(var(--bf-active-cols,var(--bf-grid-cols,4)),minmax(0,1fr)) !important;
}
.bf-public[data-active-cols="1"] .bf-card-grid[aria-label="收藏内容列表"]{gap:14px;}
.bf-public[data-active-cols="2"] .bf-card-grid[aria-label="收藏内容列表"]{gap:12px;}
.bf-public[data-active-cols="3"] .bf-card-grid[aria-label="收藏内容列表"]{gap:14px;}
.bf-public[data-active-cols="4"] .bf-card-grid[aria-label="收藏内容列表"],
.bf-public[data-active-cols="5"] .bf-card-grid[aria-label="收藏内容列表"],
.bf-public[data-active-cols="6"] .bf-card-grid[aria-label="收藏内容列表"]{gap:clamp(14px,1.8vw,18px);}

/* v1.0.14-hotfix14：JS 生成 iframe / 纯 iframe 的移动端自适应
   链路：宿主容器宽度 -> embed-loader postMessage -> embed-app layout mode -> --bf-active-cols/per_page -> 当前 iframe UI。
   纯 iframe 没有父级 JS 时，embed-app 会使用 iframe 可视宽度和触控设备屏幕短边兜底。 */
.bf-js-embed-host,
.bf-js-embed-host iframe{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.bf-js-embed-host{
  display:block;
  background:#fff;
  overflow:hidden;
  -webkit-overflow-scrolling:touch;
}
.bf-iframe-body{
  width:100%;
  max-width:100%;
  min-width:0;
  margin:0;
  background:#fff;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.bf-embed-frame-root,
.bf-iframe-body .bf-embed-root{
  width:100%;
  max-width:100%;
  min-width:0;
  padding:clamp(8px,2vw,18px);
}
.bf-public-embed{
  width:100%;
  max-width:100%;
  min-width:0;
}
.bf-public-embed .bf-hero,
.bf-public-embed .bf-featured,
.bf-public-embed .bf-public-toolbar,
.bf-public-embed .bf-category-tabs,
.bf-public-embed .bf-card-grid,
.bf-public-embed .bf-pager,
.bf-public-embed .bf-more-box{
  max-width:100%;
  min-width:0;
}
.bf-public[data-layout-mode="tablet"] .bf-card-grid[aria-label="收藏内容列表"],
.bf-public[data-layout-mode="mobile"] .bf-card-grid[aria-label="收藏内容列表"],
.bf-public[data-layout-mode="narrow"] .bf-card-grid[aria-label="收藏内容列表"]{
  grid-template-columns:repeat(var(--bf-active-cols,2),minmax(0,1fr)) !important;
}
.bf-public[data-layout-mode="tablet"] .bf-public-toolbar,
.bf-public[data-layout-mode="mobile"] .bf-public-toolbar,
.bf-public[data-layout-mode="narrow"] .bf-public-toolbar{
  grid-template-columns:1fr;
  gap:10px;
  padding:12px;
}
.bf-public[data-layout-mode="mobile"],
.bf-public[data-layout-mode="narrow"]{
  gap:12px;
}
.bf-public[data-layout-mode="mobile"] .bf-hero,
.bf-public[data-layout-mode="mobile"] .bf-featured,
.bf-public[data-layout-mode="mobile"] .bf-empty,
.bf-public[data-layout-mode="mobile"] .bf-loading-card,
.bf-public[data-layout-mode="mobile"] .bf-more-box,
.bf-public[data-layout-mode="narrow"] .bf-hero,
.bf-public[data-layout-mode="narrow"] .bf-featured,
.bf-public[data-layout-mode="narrow"] .bf-empty,
.bf-public[data-layout-mode="narrow"] .bf-loading-card,
.bf-public[data-layout-mode="narrow"] .bf-more-box{
  padding:14px;
}
.bf-public[data-layout-mode="mobile"] .bf-hero h1,
.bf-public[data-layout-mode="narrow"] .bf-hero h1{
  font-size:clamp(20px,5.6vw,24px);
  line-height:1.22;
}
.bf-public[data-layout-mode="mobile"] .bf-hero p,
.bf-public[data-layout-mode="narrow"] .bf-hero p{
  font-size:13px;
  line-height:1.62;
}
.bf-public[data-layout-mode="mobile"] .bf-category-tabs,
.bf-public[data-layout-mode="narrow"] .bf-category-tabs{
  gap:8px;
  padding:4px 2px 10px;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.bf-public[data-layout-mode="mobile"] .bf-category-tabs button,
.bf-public[data-layout-mode="narrow"] .bf-category-tabs button{
  max-width:78vw;
  min-height:38px;
  padding:8px 11px;
  font-size:13px;
}
.bf-public[data-layout-mode="mobile"] .bf-card-grid[aria-label="收藏内容列表"]{
  gap:12px;
  padding:4px 2px 12px;
}
.bf-public[data-layout-mode="narrow"] .bf-card-grid[aria-label="收藏内容列表"]{
  gap:12px;
  padding:4px 0 12px;
}
.bf-public[data-layout-mode="mobile"] .bf-card-body{
  padding:11px;
  gap:7px;
}
.bf-public[data-layout-mode="narrow"] .bf-card-body{
  padding:12px;
  gap:8px;
}
.bf-public[data-layout-mode="mobile"] .bf-card h3{
  font-size:13.5px;
  line-height:1.42;
  -webkit-line-clamp:2;
  min-height:calc(1.42em * 2);
}
.bf-public[data-layout-mode="mobile"] .bf-card p{
  font-size:12px;
  line-height:1.48;
  -webkit-line-clamp:2;
  min-height:calc(1.48em * 2);
}
.bf-public[data-layout-mode="narrow"] .bf-card h3{
  font-size:14.5px;
  line-height:1.45;
  -webkit-line-clamp:3;
  min-height:calc(1.45em * 3);
}
.bf-public[data-layout-mode="narrow"] .bf-card p{
  font-size:12.5px;
  line-height:1.55;
  -webkit-line-clamp:3;
  min-height:calc(1.55em * 3);
}
.bf-public[data-layout-mode="mobile"] .bf-tags span,
.bf-public[data-layout-mode="narrow"] .bf-tags span{
  font-size:11px;
  padding:3px 6px;
}
.bf-public[data-layout-mode="mobile"] .bf-meta,
.bf-public[data-layout-mode="narrow"] .bf-meta{
  gap:5px;
  font-size:11px;
}
.bf-public[data-layout-mode="mobile"] .bf-pager,
.bf-public[data-layout-mode="narrow"] .bf-pager{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:12px;
}
.bf-public[data-layout-mode="mobile"] .bf-pager span,
.bf-public[data-layout-mode="narrow"] .bf-pager span{
  grid-column:1/-1;
  order:-1;
  text-align:center;
}
.bf-public[data-layout-mode="mobile"] .bf-pager button,
.bf-public[data-layout-mode="narrow"] .bf-pager button{
  width:100%;
}
.bf-public[data-layout-mode="mobile"] .bf-jump,
.bf-public[data-layout-mode="narrow"] .bf-jump{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  width:100%;
}
.bf-public[data-layout-mode="mobile"] .bf-jump input,
.bf-public[data-layout-mode="narrow"] .bf-jump input{
  width:100%;
}
.bf-public[data-layout-mode="mobile"] .bf-more-btn,
.bf-public[data-layout-mode="narrow"] .bf-more-btn{
  width:100%;
  min-width:0;
}
.bf-public[data-layout-mode="mobile"] .bf-drawer,
.bf-public[data-layout-mode="narrow"] .bf-drawer,
.bf-drawer-mask .bf-drawer{
  max-width:100vw;
}


/* v1.0.16-hotfix16：嵌入高度与演示页修复
   目标：JS iframe 由内容真实高度驱动；纯 iframe 初始高度不要拉长；demo 页面只按内容主体高度展示。 */
.bf-js-embed-host iframe{
  transition:height .18s ease,min-height .18s ease;
}
.bf-iframe-body{
  min-height:0!important;
  height:auto!important;
}
.bf-embed-frame-root,
.bf-iframe-body .bf-embed-root{
  min-height:0!important;
}
.bf-public-embed{
  min-height:0!important;
}
.bf-public .bf-card-grid[aria-label="收藏内容列表"]{
  overflow:visible;
  max-height:none!important;
}
.bf-public-embed .bf-card-grid[aria-label="收藏内容列表"]{
  overflow:visible;
  max-height:none!important;
}
.bf-public[data-layout-mode="mobile"] .bf-card-grid[aria-label="收藏内容列表"],
.bf-public[data-layout-mode="narrow"] .bf-card-grid[aria-label="收藏内容列表"]{
  overflow:visible;
  max-height:none!important;
}
