.card, .book-section { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.rb-card-icon { display:inline-block; width:1em; height:1em; flex:none; vertical-align:middle; fill:currentColor; }
.share-btn .rb-card-icon { width:18px; height:18px; }
.school-badge .rb-card-icon, .tag .rb-card-icon { width:12px; height:12px; }
.stars-row .rb-card-icon { width:11px; height:11px; }
.new-pill .rb-card-icon { width:10px; height:10px; }
.rb-card-placeholders { width:100%; display:flex; flex-direction:column; gap:16px; }
.rb-card-placeholder { position:relative; height:156px; border:1px solid rgba(255,255,255,.14); border-radius:24px; background:rgba(14,18,24,.52); padding:20px; display:flex; gap:14px; }
.rb-card-placeholder i { display:block; width:44px; height:44px; flex:none; border-radius:10px; background:rgba(255,255,255,.09); }
.rb-card-placeholder b { display:block; width:130px; height:12px; border-radius:6px; background:rgba(255,255,255,.09); margin:4px 0 10px; }
.rb-card-placeholder b+b { width:90px; height:9px; }
.rb-placeholder-route { position:absolute; bottom:16px; left:20px; right:20px; display:flex; justify-content:space-between; }
.rb-placeholder-route b { width:100px; height:18px; }
.rb-detail-placeholder { height:520px; background:var(--card-bg); border-color:var(--card-border); }
.rb-detail-placeholder i, .rb-detail-placeholder b { background:var(--sep); }
.map-preview-link { position:relative; overflow:hidden; height:160px; background:var(--map-fill,#0c1724); }
.rb-route-preview { position:relative; z-index:1; display:block; width:100%; height:160px; border-radius:10px; pointer-events:none; }
.map-preview-link .map-preview-canvas { position:absolute; inset:0; opacity:0; transition:opacity 160ms ease; }
.map-preview-link .map-preview-canvas.is-ready { opacity:1; }
.map-preview-image { display:block; width:100%; height:100%; object-fit:fill; }
.rcd-map { position:relative; overflow:hidden; }
.rcd-map .rb-route-preview { width:100%; height:100%; }
.rb-snapshot-image { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; }
.rc[aria-busy="true"] { opacity:.72; cursor:progress; }
@media (prefers-reduced-motion:reduce) { .map-preview-link .map-preview-canvas { transition:none; } }
