/* --- 1. 全局與基礎樣式 --- */
body { background-color: #2c3e50; color: #ecf0f1; }
.navbar { position: sticky; top: 0; z-index: 30; }
.navbar, .navbar-menu { background-color: #2c3e50; }
.navbar-brand .navbar-item { color: #fff; font-weight: 700; }
.navbar-item { color: #ecf0f1; transition: color 0.2s, background-color 0.2s; }
.navbar-item:hover { background-color: #34495e; color: #3498db; }
.title, .subtitle { color: #ecf0f1; }
.title.is-2 { margin-top: 2.5rem !important; margin-bottom: 2rem !important; }
.site-footer { background-color: #212f3d; color: #aab8c2; padding: 3rem 1.5rem; margin-top: 40px; border-top: 1px solid #34495e; }
.footer-content { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 2rem; margin-bottom: 2rem; text-align: left; }
.footer-about, .footer-links { flex-basis: 45%; flex-grow: 1; }
.footer-about p { font-size: .9rem; line-height: 1.6; }
.footer-links ul { list-style: none; margin: 0; padding: 0; }
.footer-links li { margin-bottom: .5rem; }
.footer-links a { color: #aab8c2; text-decoration: none; transition: color 0.2s; }
.footer-links a:hover { color: #50e3c2; }
.footer-copyright { text-align: center; font-size: .8rem; border-top: 1px solid #34495e; padding-top: 1.5rem; }

/* --- 2. 篩選器面板樣式 --- */
.search-filter-container { background-color: #34495e; padding: 1.5rem; border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.search-bar-group { display: flex; gap: 1rem; }
.search-bar-group .control.is-expanded { flex-grow: 1; }
.search-bar-group .input { background-color: #2c3e50; border-color: #4a5d71; color: #ecf0f1; }
.search-bar-group .input::placeholder { color: #7f8c8d; }
.filter-controls { display: flex; justify-content: space-between; align-items: flex-start; margin-top: 1.5rem; flex-wrap: wrap; gap: 1rem; }
.filter-group { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.filter-label { font-weight: 700; color: #bdc3c7; flex-shrink: 0; font-size: .9rem; }
.filter-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.filter-btn { background-color: transparent; color: #bdc3c7; border: 1px solid #4a5d71; padding: .4rem .9rem; border-radius: 20px; cursor: pointer; transition: all .2s ease; font-size: .85rem; }
.filter-btn:hover { background-color: #4a5d71; color: #fff; }
.filter-btn.is-active { background-color: #00d1b2; color: #fff; border-color: #00d1b2; font-weight: 700; }
.sort-control .select select { background-color: #2c3e50; color: #ecf0f1; border-color: #4a5d71; font-size: .9rem; }
.advanced-filter-toggle { color: #3498db; cursor: pointer; background: 0 0; border: none; padding: .5rem; display: flex; width: 100%; justify-content: center; align-items: center; gap: .5rem; margin-top: 1rem; border-top: 1px solid #4a5d71; padding-top: 1rem; }
.advanced-filter-toggle .icon { transition: transform .3s ease; }
.advanced-filter-toggle.is-active .icon { transform: rotate(180deg); }
.advanced-filters { max-height: 0; overflow: hidden; transition: max-height .4s ease-in-out; }
.advanced-filters.is-active { max-height: 200px; }
.mobile-filter-trigger { display: none; width: 100%; }
.filter-modal { display: none; }
.filter-modal.is-active { display: block; }
.filter-modal-overlay { position: fixed; inset: 0; background-color: rgba(0,0,0,.6); z-index: 40; }
.filter-modal-card { position: fixed; bottom: 0; left: 0; right: 0; background-color: #2c3e50; border-radius: 16px 16px 0 0; z-index: 50; padding: 1.5rem; box-shadow: 0 -5px 15px rgba(0,0,0,.3); transform: translateY(100%); animation: slideUp .3s forwards; }
@keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
.modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; }
.modal-title { font-size: 1.5rem; font-weight: 700; }
.modal-close-btn { background: 0 0; border: none; color: #7f8c8d; font-size: 2rem; cursor: pointer; }
.modal-body { max-height: 60vh; overflow-y: auto; }
.modal-filter-group { margin-bottom: 1.5rem; }
.modal-filter-label { font-size: 1.1rem; font-weight: 700; margin-bottom: 1rem; display: block; }
.modal-actions { display: flex; gap: 1rem; margin-top: 1.5rem; border-top: 1px solid #34495e; padding-top: 1.5rem; }

/* --- 3. 列表頁樣式 --- */
.character-card, .script-card { background-color: #34495e; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,.2); padding: 1.5rem; position: relative; transition: transform .2s,box-shadow .2s; height: 100%; display: flex; flex-direction: column; }
.character-card:hover, .script-card:hover { transform: translateY(-5px); box-shadow: 0 8px 15px rgba(0,0,0,.3); }
.character-card-link { display: block; color: inherit; text-decoration: none; height: 100%; }
.character-card-link:hover { color: inherit; }
.character-info-header { display: flex; align-items: center; gap: 1.5rem; flex-grow: 1; }
.character-image-container { width: 96px; height: 96px; border-radius: 50%; border: 3px solid #3498db; box-shadow: 0 0 5px rgba(52,152,219,.5); flex-shrink: 0; position: relative; }
.script-image-container { width: 100%; height: 150px; overflow: hidden; border-radius: 8px; border: 3px solid #3498db; box-shadow: 0 0 5px rgba(52,152,219,.5); }
.character-image, .script-image { width: 100%; height: 100%; object-fit: cover; }
.image-placeholder { width: 100%; height: 100%; background-color: #49637a; display: flex; align-items: center; justify-content: center; color: #ecf0f1; font-size: 12px; text-align: center; }
.character-info-content { display: flex; flex-direction: column; flex-grow: 1; justify-content: center; min-width: 0; }
.character-name-line { display: flex; align-items: center; gap: 5px; line-height: 1.2; }
.character-name, .script-name { font-size: 1.5rem; font-weight: 700; color: #fff; margin-bottom: .5rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gender-icon { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; font-weight: 700; flex-shrink: 0; }
.gender-male { background-color: #3498db; }
.gender-female { background-color: #e91e63; }
.character-description, .script-description { margin-top: 1rem; border-top: 1px solid #4a5d71; padding-top: 1rem; font-size: .9rem; color: #b1c1d6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; }
.script-card .card-content { padding: 1rem 0 0; }
.nationality-flag { position: absolute; right: -2px; bottom: -2px; width: 32px; height: 32px; border-radius: 50%; background-color: #fff; padding: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); z-index: 2; border: 2px solid #fff; }

/* --- 4. 詳細頁通用樣式 --- */
.character-detail-container, .script-detail-container { max-width: 800px; margin: 40px auto; padding: 2rem; background-color: #34495e; border-radius: 12px; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.detail-section { background-color: rgba(0,0,0,.2); padding: 1.5rem; border-radius: 8px; margin-top: 1.5rem; }
.detail-section-title { font-size: 1.5rem; font-weight: 700; color: #50e3c2; margin-bottom: 1.5rem; padding-bottom: .5rem; border-bottom: 2px solid rgba(80,227,194,.3); }
.breadcrumb { margin-bottom: 2rem; }
.breadcrumb ul { flex-wrap: wrap; }
.breadcrumb a { color: #bdc3c7; transition: color .2s; }
.breadcrumb a:hover { color: #50e3c2; }
.breadcrumb li.is-active a { color: #fff; font-weight: 700; }
.breadcrumb li+li::before { color: #7f8c8d; }

/* --- 5. 人物詳細頁專屬 --- */
.character-profile-card { background-color: rgba(0,0,0,.2); border-radius: 12px; padding: 2rem 1rem; display: flex; flex-direction: column; align-items: center; text-align: center; border: 1px solid rgba(255,255,255,.1); margin-bottom: 1.5rem; }
.profile-image-wrapper { position: relative; width: 120px; height: 120px; border-radius: 50%; border: 4px solid #4a90e2; box-shadow: 0 0 20px rgba(74,144,226,.5); margin-bottom: 1rem; }
.profile-image { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.profile-nationality-flag { position: absolute; right: 0; bottom: 0; width: 36px; height: 36px; border-radius: 50%; background-color: #fff; padding: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); border: 2px solid #fff; }
.profile-name { font-size: 2.5rem; font-weight: 700; color: #fff; display: flex; align-items: center; gap: .75rem; margin-bottom: .5rem; }
.profile-name .gender-icon { font-size: 1.5rem; }
.profile-name .gender-icon.is-male { color: #4a90e2; }
.profile-name .gender-icon.is-female { color: #e91e63; }
.stat-item { padding: .75rem 0; border-bottom: 1px solid rgba(255,255,255,.1); display: flex; align-items: center; }
.stat-item:last-child { border-bottom: none; }
.item-icon-small { width: 24px; height: 24px; margin-right: 1rem; }
.stat-name { font-size: 1rem; color: #ecf0f1; flex-grow: 1; }
.stat-value { font-size: 1.1rem; font-weight: 700; color: #fff; }
.strengths-list { display: flex; flex-wrap: wrap; gap: .75rem; }
.strength-tag { font-size: .9rem; padding: .3rem 1rem; border-radius: 5px; font-weight: 700; color: #fff; }
.strength-tag.tag-gold { background-color: #f1c40f; color: #2c3e50; }
.strength-tag.tag-red { background-color: #e74c3c; }
.strength-tag.tag-purple { background-color: #9b59b6; }
.strength-tag.tag-blue { background-color: #3498db; }
.skill-item, .bond-item { display: flex; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.skill-item:last-child, .bond-item:last-child { border-bottom: none; }
.item-icon { width: 60px; height: 60px; flex-shrink: 0; background-color: rgba(0,0,0,.3); border-radius: 8px; }
.item-content { flex-grow: 1; min-width: 0; }
.item-content strong { font-size: 1.2rem; color: #fff; display: block; margin-bottom: .25rem; }
.item-content small { font-size: .9rem; color: #bdc3c7; }
.introduction-text { font-size: 1rem; line-height: 1.8; color: #bdc3c7; }
.bond-characters { display: flex; gap: .75rem; margin-bottom: .5rem; }
.bond-character-icon { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; border: 2px solid #7f8c8d; transition: border-color .2s; }
.bond-character-icon img { width: 100%; height: 100%; object-fit: cover; }

/* --- 6. 劇本詳細頁專屬 --- */
.script-detail-container .detail-card-header { align-items: flex-start; gap: 1.5rem; margin-bottom: 2rem; }
.script-detail-container .detail-image-container { width: 150px; height: 200px; border-radius: 8px; border: 3px solid #4a90e2; box-shadow: 0 0 10px rgba(74,144,226,.4); flex-shrink: 0; }
.script-detail-container .detail-name { font-size: 2.2rem; }
.roles-container { display: grid; grid-template-columns: repeat(auto-fill,minmax(80px,1fr)); gap: 1rem; }
.role-card { position: relative; border: 2px solid; border-radius: 8px; padding: 20px 5px 10px; text-align: center; }
.role-card.gender-male { border-color: #2196f3; }
.role-card.gender-female { border-color: #f06292; }
.role-card.gender-neutral { border-color: #9e9e9e; }
.role-card .role-name { color: #ecf0f1; font-size: .9rem; margin-top: 5px; }
.role-type { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); padding: 2px 8px; border-radius: 10px; color: #fff; font-size: .75em; font-weight: 700; white-space: nowrap; }
.type-qingchun { background-color: #4caf50; }
.type-chengshu { background-color: #9c27b0; }
.type-ouxiang { background-color: #e91e63; }
.type-yanji { background-color: #f44336; }
.role-nationality-icon { position: absolute; top: 2px; right: 2px; width: 24px; height: 24px; }
.goal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start; }
.goal-label { font-size: 1rem; color: #bdc3c7; margin-bottom: .5rem; }
.goal-content { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.goal-icon { width: 32px; height: 32px; vertical-align: middle; }
.goal-value { font-size: 1.1rem; font-weight: 700; color: #fff; }
.preview-list { list-style: none; padding: 0; margin: 0; }
.preview-list li { margin-bottom: .75rem; color: #ecf0f1; }
.outline-text { font-size: 1rem; line-height: 1.8; color: #bdc3c7; }

/* --- 7. 通用元件樣式 --- */
.star-rating { font-size: 1.2rem; line-height: 1; margin-top: 5px; display: flex; gap: 2px; flex-wrap: wrap; justify-content: center; }
.star-rating .star { font-weight: 700; opacity: .85; -webkit-text-stroke: 1px rgba(0,0,0,.2); }
.star-rating-1 .star, .star-rating-2 .star { color: #aaa; }
.star-rating-3 .star { color: #64b5f6; }
.star-rating-4 .star { color: #ba68c8; }
.star-rating-5 .star { color: #f57c00; }
.star-rating-6 .star, .star-rating-7 .star { color: #e53935; }
.character-types, .script-genres, .detail-types, .profile-types { display: flex; gap: .5rem; margin-bottom: .5rem; flex-wrap: wrap; justify-content: center; }
.script-genres { min-height: 32px; }
.game-tag { display: inline-block; padding: 4px 10px; margin: 2px 0; border-radius: 15px; font-size: .75em; font-weight: 700; line-height: 1.5; }
.tag-char-type1 { background-color: #4a90e2; color: #fff; }
.tag-char-type2 { background-color: #50e3c2; color: #fff; }
.tag-script-genre { background-color: #e3f2fd; border: 1px solid #90caf9; color: #1565c0; }
.quick-nav-bar { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: 1.5rem; margin-bottom: 1.5rem; }
.quick-nav-button { color: #ecf0f1; background-color: #4a5d70; padding: .75rem; border-radius: 8px; text-decoration: none; transition: all .2s ease; display: flex; align-items: center; justify-content: center; gap: .5rem; font-size: .9rem; font-weight: 700; border: 1px solid #5a6d80; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.quick-nav-button:hover { background-color: #50e3c2; color: #2c3e50; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.related-content-section { background-color: rgba(0,0,0,.25); border: 1px solid rgba(80,227,194,.4); border-radius: 12px; margin-top: 2.5rem; padding: 1.5rem; }
.related-items-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(100px,1fr)); gap: 2rem 1.5rem; }
.related-item-card { text-decoration: none; text-align: center; background-color: transparent; transition: transform .2s ease; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.related-item-card:hover { transform: translateY(-5px); }
.related-item-image-container { width: 90px; height: 90px; border-radius: 50%; border: 3px solid #7f8c8d; overflow: hidden; transition: border-color .2s ease,box-shadow .2s ease; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.related-item-card:hover .related-item-image-container { border-color: #50e3c2; box-shadow: 0 6px 15px rgba(80,227,194,.3); }
.related-item-image { width: 100%; height: 100%; object-fit: cover; }
.related-item-name { font-weight: 700; font-size: .9rem; color: #bdc3c7; transition: color .2s ease; }
.related-item-card:hover .related-item-name { color: #50e3c2; }
.social-share-section { text-align: center; border-top: 1px solid #4a5d71; padding-top: 1.5rem; margin-top: 1.5rem; }
.social-share-title { font-size: 1rem; font-weight: 700; color: #bdc3c7; margin-bottom: 1rem; }
.social-share-buttons { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }
.share-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; color: #fff; border-radius: 20px; padding: .6rem 1.2rem; text-decoration: none; font-weight: 700; font-size: .9rem; transition: opacity .2s ease; border: none; }
.share-btn:hover { opacity: .85; color: #fff; }
.share-btn .icon { font-size: 1.2em; }
.share-btn-facebook { background-color: #1877f2; }
.share-btn-twitter { background-color: #1da1f2; }
.share-btn-line { background-color: #06c755; }
.bond-character-trigger { position: relative; cursor: pointer; }
.bond-character-trigger:hover .bond-character-icon { border-color: #50e3c2; }
.tooltip-overlay, .tooltip-close-btn { display: none; }
.rich-tooltip { visibility: hidden; opacity: 0; pointer-events: none; transition: opacity .2s,visibility .2s; z-index: 10; position: absolute; bottom: 115%; left: 50%; transform: translateX(-50%); }
.rich-tooltip::after { content: ''; position: absolute; top: 100%; left: 50%; margin-left: -8px; border-width: 8px; border-style: solid; border-color: #34495e transparent transparent; }
.bond-character-trigger:hover .rich-tooltip { visibility: visible; opacity: 1; }
.tooltip-card { width: 300px; background-color: #34495e; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.4); padding: 1rem; display: flex; flex-direction: column; }
.tooltip-card .character-info-header { gap: 1rem; }
.tooltip-card .character-image-container { width: 72px; height: 72px; border: 3px solid #3498db; flex-shrink: 0; }
.tooltip-card .character-info-content { text-align: left; }
.tooltip-card .character-types { gap: 5px; margin-bottom: .25rem; justify-content: flex-start; }
.tooltip-card .tag { font-size: .65rem; height: 1.5em; }
.tooltip-card .tag.is-primary { background-color: #4a90e2; }
.tooltip-card .tag.is-info { background-color: #50e3c2; }
.tooltip-card .character-name-line { justify-content: flex-start; }
.tooltip-card .character-name { font-size: 1.2rem; color: #fff; }
.tooltip-card .gender-icon { font-size: 1rem; }
.tooltip-card .stars { font-size: .9rem; line-height: 1; margin-top: 3px; }
.tooltip-card .character-description { margin-top: .75rem; border-top: 1px solid #4a5d71; padding-top: .75rem; font-size: .8rem; color: #b1c1d6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; }
.custom-select-container { position: relative; }
.custom-select-trigger { background-color: #2c3e50; border: 1px solid #4a5d71; color: #ecf0f1; border-radius: 4px; padding: .5rem 1rem; cursor: pointer; display: flex; align-items: center; justify-content: space-between; transition: all .2s ease; }
.custom-select-trigger:hover { border-color: #50e3c2; }
.custom-select-trigger .selected-character { display: flex; align-items: center; gap: .75rem; }
.selected-character img { width: 24px; height: 24px; border-radius: 50%; }
.selected-character .stars { font-size: .8rem; color: #f1c40f; margin-left: .5rem; }
.custom-select-options { position: absolute; top: 100%; left: 0; right: 0; background-color: #34495e; border: 1px solid #4a5d71; border-radius: 4px; margin-top: 4px; z-index: 20; max-height: 250px; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transform: translateY(-10px); transition: all .2s ease; }
.custom-select-container.is-open .custom-select-options { opacity: 1; visibility: visible; transform: translateY(0); }
.custom-select-options ul { list-style: none; padding: 0; margin: 0; flex-grow: 1; overflow-y: auto; }
.custom-select-options li { padding: .75rem 1rem; cursor: pointer; display: flex; align-items: center; gap: .75rem; transition: background-color .2s; }
.custom-select-options li:hover { background-color: #4a5d70; }
.custom-select-options li.is-disabled { opacity: .5; cursor: not-allowed; background-color: transparent; }
.custom-select-options img { width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; }
.custom-select-options .stars { margin-left: auto; color: #f1c40f; font-size: .9rem; }
.option-info .name { font-weight: 700; }
.option-search-wrapper { padding: .5rem; border-bottom: 1px solid #4a5d71; }
.option-search-input { width: 100%; background-color: #2c3e50; border: 1px solid #4a5d71; color: #ecf0f1; border-radius: 4px; padding: .5rem; }
.option-search-input::placeholder { color: #7f8c8d; }
.recommendation-card { background-color: rgba(0,0,0,.2); border-radius: 8px; margin-bottom: 1rem; border-left: 4px solid #4a90e2; padding: 1.5rem; transition: box-shadow .2s; }
.recommendation-card.is-formable { border-left-color: #00d1b2; }
.recommendation-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.recommendation-tag { font-size: .8rem; font-weight: 700; padding: .25rem .75rem; border-radius: 12px; }
.recommendation-tag.is-formable { background-color: #00d1b2; color: #fff; }
.recommendation-tag.is-not-formable { background-color: #7f8c8d; color: #fff; }
.recommendation-reason { font-size: .8rem; color: #aab8c2; font-style: italic; }
.roster-characters .tag { height: auto; padding: .25rem .75rem .25rem .25rem; background-color: #4a5d70; }
.roster-characters .tag img { width: 24px; height: 24px; border-radius: 50%; margin-right: 8px; }
.roster-characters .tag .char-name { color: #fff; }
.roster-characters .tag .char-missing { color: #ff3860; text-decoration: line-through; }

/* --- 8. 響應式設計 --- */
@media (max-width:768px) {
    .character-detail-container, .script-detail-container { padding: 1.5rem 1rem; }
    .character-profile-card, .detail-card-header { margin-bottom: 1.5rem; }
    .character-profile-card .profile-image-wrapper { width: 96px; height: 96px; }
    .character-profile-card .profile-name { font-size: 1.8rem; }
    .star-rating { font-size: 1.1rem; }
    .related-items-grid { grid-template-columns: repeat(auto-fill,minmax(80px,1fr)); gap: 1.5rem 1rem; }
    .related-item-image-container { width: 70px; height: 70px; }
    .related-item-name { font-size: .8rem; }
    .pc-filters, .advanced-filter-toggle { display: none; }
    .mobile-filter-trigger { display: block; }
    .filter-controls { margin-top: 0; }
    .bond-character-trigger.tooltip-active .tooltip-overlay { display: block; position: fixed; inset: 0; background-color: rgba(0,0,0,.6); z-index: 9; }
    .rich-tooltip { position: fixed; bottom: 0; left: 0; width: 100%; transform: translateY(100%); transition: transform .3s ease-in-out; box-sizing: border-box; }
    .bond-character-trigger.tooltip-active .rich-tooltip { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
    .rich-tooltip .tooltip-card { width: 100%; border-radius: 16px 16px 0 0; padding: 2rem 1.5rem 1.5rem; background-color: #2c3e50; box-shadow: 0 -5px 15px rgba(0,0,0,.3); }
    .rich-tooltip::after { display: none; }
    .tooltip-close-btn { display: block; position: absolute; top: 15px; right: 15px; width: 36px; height: 36px; background: rgba(255,255,255,.1); color: #fff; border: none; border-radius: 50%; font-size: 24px; line-height: 36px; text-align: center; cursor: pointer; z-index: 11; }
}
@media (min-width:769px) {
    .pc-filters { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
    .mobile-filter-trigger { display: none; }
    .quick-nav-bar { grid-template-columns: repeat(4,1fr); }
}

/* --- 11. 智慧陣容推薦樣式 --- */
.roster-characters .tag {
    display: flex; /* 改為 flex 佈局 */
    align-items: center;
    width: calc(50% - 0.5rem); /* 一行顯示兩個 */
    margin-bottom: 0.5rem;
}
.role-char-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
}
.role-name-title {
    font-size: 0.7rem;
    color: #aab8c2;
}