/* 针对 Flask 改造原始主题；保留其颜色、间距和布局。 */
:root { --bili-pink: #fb7299; }
body { overflow-wrap: anywhere; }
h1, h2, h3, h4, p { text-wrap: pretty; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid #007bff !important; outline-offset: 3px; }
.bili-button { background-color: var(--bili-pink); border-color: var(--bili-pink); }
.bili-button:hover, .bili-button:focus { background-color: #e65b84; border-color: #e65b84; }
.search-form .form-group { position: relative; }
.home-slider { position: relative; margin-bottom: 30px; }
.home-slider .a-block { margin-bottom: 0; }
.video-cover { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.blog-content-body h2 a, .video-heading a { color: #000; }
.blog-content-body h2 a:hover, .video-heading a:hover { color: #007bff; }
.video-subtitle { color: #6c757d; font-size: 1.3rem; }
.post-meta { margin-bottom: 20px; }
.aspect-ratio { position: relative; width: 100%; height: 0; padding-bottom: 75%; margin-bottom: 20px; }
.aspect-ratio iframe { position: absolute; width: 100%; height: 100%; left: 0; top: 0; }
[v-cloak] { display: none; }
.video-preview { margin-bottom: 30px; }
.video-preview > img { width: 100%; max-height: 450px; object-fit: contain; background: #f8f9fa; }
.video-preview > p { padding: 15px; background: #f8f9fa; font-size: 15px; }
#partinfo span, #partlist span { margin-right: 10px; }
.plantPic { margin-left: 5px; margin-right: 5px; }
.history-remark { font-size: 15px; white-space: pre-wrap; }
.game-info { margin: 30px 0; }
.game-info h2 { font-size: 26px; }
.historical-note, .result-count { font-size: 14px; color: #6c757d; }
.preserve-lines { white-space: pre-wrap; }
.empty-state { padding: 30px 0; }
.about-content .strong { color: #222; font-size: 20px; font-weight: bold; }
.about-content .que { color: #52beff; font-size: 18px; font-weight: bold; }
.about-content .ans { color: #222; font-size: 18px; }
.about-content .col-red { color: red; }
.post-entry-sidebar .text { min-width: 0; }
.site-footer__registrations { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 18px; margin-top: 2px; font-size: 13px; line-height: 1.6; }
.site-footer__registrations a { color: rgba(255, 255, 255, 0.72); }
@media (max-width: 767.98px) {
  .site-logo a { font-size: clamp(28px, 8vw, 40px); }
  header .navbar .dropdown-item { white-space: normal; }
  .a-block.height-lg { min-height: 400px; height: auto; padding: 35px 24px; }
  .a-block.height-md { height: 350px; }
  .video-heading { font-size: 30px; }
}
@media (prefers-reduced-motion: reduce) { *, *:before, *:after { transition: none !important; } }
