/* セトリDB：テーマの配色を活かすため、色は控えめ＋currentColor中心 */
.sdb {
	--sdb-accent: #e0245e;
	--sdb-line: rgba(127, 127, 127, 0.25);
	--sdb-soft: rgba(127, 127, 127, 0.08);
	margin: 1.5em 0;
}
.sdb-h { margin-top: 1.6em; }
.sdb-section { font-size: 1em; margin: 1.2em 0 0.4em; padding-left: 0.6em; border-left: 4px solid var(--sdb-accent); }
/* セトリの「本編」「アンコール」の区切り：小さめのラベル */
.sdb p.sdb-section { font-size: 0.8em; font-weight: 700; line-height: 1.4; letter-spacing: 0.08em; color: var(--sdb-accent); margin: 1.4em 0 0.2em; padding: 0; border: 0; }
.sdb-summary { color: inherit; opacity: 0.8; }

.sdb-info { width: 100%; border-collapse: collapse; margin: 0 0 1em; }
.sdb-info th, .sdb-info td { padding: 0.5em 0.75em; border-bottom: 1px solid var(--sdb-line); text-align: left; }
.sdb-info th { width: 7.5em; white-space: nowrap; font-weight: 600; background: var(--sdb-soft); }

/* 曲番号は左端にそろえて自前で出す（「アンコール」などの区切りと位置を合わせるため） */
.sdb ol.sdb-setlist { margin: 0; padding: 0; list-style: none; }
.sdb ol.sdb-setlist > li { position: relative; margin: 0; padding: 0.35em 0 0.35em 2.2em; border-bottom: 1px dashed var(--sdb-line); list-style: none; }
.sdb ol.sdb-setlist > li::before { content: attr(data-no) "."; position: absolute; left: 0; top: 0.35em; width: auto; height: auto; margin: 0; padding: 0; background: none; border: 0; border-radius: 0; color: inherit; font: inherit; opacity: 0.75; transform: none; }
.sdb ol.sdb-setlist-pre > li { opacity: 0.85; }
/* MC・VCR など曲ではない行：番号なし・小さめ */
.sdb ol.sdb-setlist > li.sdb-nonsong { padding-top: 0.25em; padding-bottom: 0.25em; font-size: 0.82em; opacity: 0.65; letter-spacing: 0.04em; }
.sdb ol.sdb-setlist > li.sdb-nonsong::before { content: "―"; opacity: 0.6; }
/* 曲名のリンクは普段は文字色のまま、マウスを乗せたときだけ青（色の印 sdb-mark-* は下の指定が優先） */
.sdb ol.sdb-setlist > li > a { color: inherit; text-decoration: none; }
.sdb ol.sdb-setlist > li > a:hover, .sdb ol.sdb-setlist > li > a:focus { color: #2271b1; text-decoration: underline; }
.sdb-badge { display: inline-block; font-size: 0.72em; line-height: 1; padding: 0.3em 0.5em; border-radius: 999px; border: 1px solid var(--sdb-line); margin-left: 0.3em; vertical-align: middle; }
.sdb-badge-first { background: var(--sdb-accent); border-color: var(--sdb-accent); color: #fff; font-weight: 700; }
.sdb-total { font-size: 0.75em; opacity: 0.6; margin-left: 0.5em; }
.sdb-note { font-size: 0.85em; opacity: 0.75; }

.sdb-play { margin: 1.2em 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em 1em; }
.sdb-play-note { font-size: 0.8em; opacity: 0.7; }
.sdb-btn { display: inline-block; padding: 0.65em 1.2em; border-radius: 6px; border: 0; background: #222; color: #fff !important; text-decoration: none !important; font-weight: 700; cursor: pointer; font-size: 0.95em; line-height: 1.3; }
.sdb-btn:hover { opacity: 0.85; }
.sdb-btn-yt { background: #ff0000; }

.sdb-disclaimer, .sdb-source { font-size: 0.8em; opacity: 0.65; }
.sdb-actions { font-size: 0.9em; }
/* 先輩・他グループの曲が多いアーティスト：曲名の横の「/ 原曲のグループ」 */
.sdb-orig { font-size: 0.8em; font-weight: 400; opacity: 0.7; white-space: nowrap; }
.sdb-song-origin { margin: 0 0 0.8em; }
.sdb-report-item { margin: 0 0 1.4em; padding: 0 0 1.2em; border-bottom: 1px solid rgba(0, 0, 0, 0.12); }
.sdb-report-item:last-child { border-bottom: 0; }
.sdb .sdb-report-title { margin: 0 0 0.3em; font-size: 1.05em; }
.sdb-report-meta { margin: 0 0 0.8em; font-size: 0.9em; }
.sdb-report-body p { margin: 0 0 1em; }
.sdb-report-body.is-folded { position: relative; max-height: 7.5em; overflow: hidden; }
.sdb-report-body.is-folded::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3em; background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--sdb-fold-bg, #fff)); }
.sdb-report-more { margin: 0.4em 0 0; }
.sdb-report-where { margin-right: 0.6em; font-weight: 700; }
.sdb-live-links { display: flex; flex-wrap: wrap; gap: 0.5em; margin: 0.6em 0 1em; }

.sdb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 0.75em; margin: 1em 0; }
.sdb-stat { background: var(--sdb-soft); border-radius: 8px; padding: 0.9em; text-align: center; }
.sdb-stat-num { display: block; font-size: 1.8em; font-weight: 800; line-height: 1.2; }
.sdb-stat-num small { font-size: 0.5em; margin-left: 0.15em; }
.sdb-stat-date { font-size: 1.15em; padding: 0.35em 0; }
.sdb-stat-label { display: block; font-size: 0.78em; opacity: 0.7; margin-top: 0.2em; }

.sdb-embed { position: relative; aspect-ratio: 16 / 9; margin: 1em 0; }
.sdb-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 8px; }

.sdb-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sdb-table { width: 100%; border-collapse: collapse; font-size: 0.92em; }
.sdb-table th, .sdb-table td { padding: 0.55em 0.6em; border-bottom: 1px solid var(--sdb-line); text-align: left; vertical-align: top; }
.sdb-table thead th { background: var(--sdb-soft); font-weight: 600; white-space: nowrap; }
.sdb-nowrap { white-space: nowrap; }
.sdb-ranking td:first-child { font-weight: 800; text-align: center; width: 3em; }

.sdb-list { padding-left: 1.2em; }
.sdb-list li { margin: 0.3em 0; }
.sdb-date { font-variant-numeric: tabular-nums; opacity: 0.7; margin-right: 0.4em; }

.sdb-form input[type=text], .sdb-form input[type=url], .sdb-form input[type=email],
.sdb-form input[type=date], .sdb-form input[type=search], .sdb-form select, .sdb-form textarea {
	width: 100%; max-width: 100%; box-sizing: border-box; padding: 0.55em 0.65em; border: 1px solid var(--sdb-line); border-radius: 6px; font: inherit; background: transparent; color: inherit;
}
.sdb-form select option { color: #222; }
/* 長い入力欄（セットリスト・ライブレポ本文）：最初の高さを行数で決め、中身が増えたら自動で伸ばす（forms.php の sdb_autogrow_script）。
   テーマが入力欄の高さを決めているので、高さを指定する。行数は欄の style の --sdb-rows（PC）/ --sdb-rows-sp（スマホ）/ --sdb-max（上限） */
.sdb-form textarea.sdb-autogrow { height: calc(var(--sdb-rows, 20) * 1.8em + 1.4em); max-height: calc(var(--sdb-max, 30) * 1.8em + 1.4em); line-height: 1.8; }
@media (max-width: 600px) { .sdb-form textarea.sdb-autogrow { height: calc(var(--sdb-rows-sp, 14) * 1.8em + 1.4em); } }
.sdb-search-form { display: flex; flex-wrap: wrap; gap: 0.5em; margin-bottom: 1em; }
.sdb-search-form input[type=search] { flex: 2 1 220px; width: auto; }
.sdb-search-form select { flex: 1 1 150px; width: auto; }
.sdb-req { font-size: 0.72em; background: var(--sdb-accent); color: #fff; padding: 0.15em 0.4em; border-radius: 3px; vertical-align: middle; }
.sdb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sdb-alert { padding: 0.8em 1em; border-radius: 6px; background: var(--sdb-soft); margin: 0 0 1em; }
.sdb-alert ul { margin: 0; padding-left: 1.2em; }
.sdb-alert-ok { background: rgba(0, 163, 42, 0.12); }
.sdb-alert-err { background: rgba(214, 54, 56, 0.12); }
.sdb-rules { background: var(--sdb-soft); padding: 0.8em 1em; border-radius: 6px; font-size: 0.9em; }
.sdb-rules ul { margin: 0.4em 0 0; padding-left: 1.2em; }
.sdb-origin { font-weight: 600; }
.sdb-source-box { margin-top: 2.5em; }
/* 会員（ログイン・登録・マイページ） */
.sdb-auth { max-width: 480px; margin-left: auto; margin-right: auto; }
.sdb-btn-block { display: block; width: 100%; text-align: center; }
.sdb-btn-sub { background: #555; }
.sdb-btn-danger { background: #b32d2e; }
.sdb-auth-links { text-align: center; font-size: 0.9em; }
.sdb-social { margin: 0 0 1em; text-align: center; }
.sdb-social-title { font-size: 0.9em; opacity: 0.8; margin-bottom: 0.5em; }
.sdb-or { display: flex; align-items: center; gap: 0.75em; margin: 1.2em 0; font-size: 0.85em; opacity: 0.7; }
.sdb-or::before, .sdb-or::after { content: ""; flex: 1; border-top: 1px solid var(--sdb-line); }
.sdb-resend, .sdb-setting { margin: 0.75em 0; padding: 0.6em 0.9em; border: 1px solid var(--sdb-line); border-radius: 6px; }
.sdb-resend summary, .sdb-setting summary { cursor: pointer; font-weight: 600; }
.sdb-danger summary { color: #b32d2e; }
.sdb-captcha { margin: 0.75em 0; }
.sdb-profile-card { display: flex; align-items: center; gap: 1em; padding: 1em; background: var(--sdb-soft); border-radius: 10px; margin-bottom: 1em; }
.sdb-profile-card img { border-radius: 50%; display: block; }
.sdb-profile-name { font-size: 1.2em; font-weight: 800; margin: 0; }
.sdb-profile-meta { font-size: 0.8em; opacity: 0.7; margin: 0.2em 0 0; }
.sdb-profile-actions { margin-left: auto; font-size: 0.85em; }
.sdb-status { display: inline-block; font-size: 0.75em; padding: 0.2em 0.6em; border-radius: 999px; font-weight: 700; }
.sdb-status-ok { background: rgba(0, 163, 42, 0.15); }
.sdb-status-wait { background: rgba(219, 166, 23, 0.2); }
.sdb-status-ng { background: rgba(127, 127, 127, 0.15); }
/* 投稿フォーム：曲名の候補ボタン */
.sdb-picker { margin: -0.4em 0 1.2em; padding: 0.75em; border: 1px dashed var(--sdb-line); border-radius: 8px; }
.sdb-picker[hidden] { display: none; }
.sdb-picker-title { font-size: 0.8em; opacity: 0.75; margin: 0 0 0.5em; }
.sdb-picker-tools { display: flex; flex-wrap: wrap; gap: 0.5em; margin-bottom: 0.5em; }
.sdb-picker-filter { flex: 1 1 160px; }
.sdb-picker-list { display: flex; flex-wrap: wrap; gap: 0.35em; max-height: 220px; overflow-y: auto; }
.sdb-chip { font: inherit; font-size: 0.85em; padding: 0.3em 0.7em; border-radius: 999px; border: 1px solid var(--sdb-line); background: var(--sdb-soft); color: inherit; cursor: pointer; }
.sdb-chip:hover { border-color: var(--sdb-accent); }
.sdb-chip[hidden] { display: none; }
.sdb-chip-en { background: var(--sdb-accent); border-color: var(--sdb-accent); color: #fff; font-weight: 700; }
.sdb-count { opacity: 0.7; }
.sdb-edit-link { font-size: 0.8em; }
.sdb-reject-reason { color: #b32d2e; }
.sdb-login-required { text-align: center; padding: 1.2em; }
/* ポイント・ランク */
.sdb-rank { display: inline-block; font-size: 0.72em; font-weight: 700; line-height: 1; padding: 0.3em 0.6em; border-radius: 999px; color: #fff; background: var(--sdb-rank, #8c8f94); vertical-align: middle; white-space: nowrap; }
.sdb-points-card { padding: 1em 1.1em; border: 1px solid var(--sdb-line); border-radius: 10px; margin-bottom: 1em; }
.sdb-points-main { display: flex; align-items: baseline; gap: 0.35em; flex-wrap: wrap; }
.sdb-points-num { font-size: 2.2em; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.sdb-points-unit { font-weight: 700; opacity: 0.7; margin-right: 0.4em; }
.sdb-progress { height: 8px; border-radius: 999px; background: var(--sdb-soft); overflow: hidden; margin: 0.7em 0 0.4em; }
.sdb-progress span { display: block; height: 100%; border-radius: 999px; }
.sdb-points-next { font-size: 0.85em; margin: 0 0 0.5em; }
.sdb-points-rules summary { cursor: pointer; font-size: 0.85em; }
.sdb-points-rules ul { margin: 0.4em 0; padding-left: 1.2em; font-size: 0.9em; }
.sdb-points-link { margin: 0.4em 0 0; font-size: 0.9em; }
.sdb-rankup { font-size: 1.05em; }
.sdb-credits { font-size: 0.9em; padding: 0.6em 0.9em; background: var(--sdb-soft); border-radius: 8px; }
.sdb-credit-name { font-weight: 700; }
.sdb-credits-link { font-size: 0.85em; margin-left: 0.5em; }
.sdb-tabs { display: flex; gap: 0.5em; margin-bottom: 1em; }
.sdb-tabs a { padding: 0.45em 1em; border-radius: 999px; border: 1px solid var(--sdb-line); text-decoration: none; }
.sdb-tabs a.is-active { background: #222; color: #fff; border-color: #222; }
.sdb-rank-list { line-height: 2.2; }
/* いいね・参戦・フォロー・共有 */
.sdb-live-actions, .sdb-artist-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em; margin: 1em 0 0.6em; }
.sdb-act { display: inline-flex; align-items: center; gap: 0.35em; font: inherit; font-size: 0.9em; font-weight: 700; padding: 0.5em 1em; border-radius: 999px; border: 1px solid var(--sdb-line); background: transparent; color: inherit; cursor: pointer; line-height: 1.2; }
.sdb-act:hover { border-color: var(--sdb-accent); }
.sdb-act.is-on { background: var(--sdb-accent); border-color: var(--sdb-accent); color: #fff; }
.sdb-act-count:not(:empty) { font-weight: 400; opacity: 0.85; }
.sdb-act-count:not(:empty)::before { content: "· "; }
.sdb-act[disabled] { opacity: 0.6; cursor: wait; }
.sdb-follow-note { font-size: 0.78em; opacity: 0.7; }
.sdb-share-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0.5em; margin: 0.4em 0 1em; }
.sdb-share-title { font-size: 0.8em; opacity: 0.7; }
.sdb-share { display: inline-flex; flex-wrap: wrap; gap: 0.4em; }
.sdb-share-btn { display: inline-flex; align-items: center; gap: 0.4em; box-sizing: border-box; font-size: 0.82em; font-weight: 700; line-height: 1.2; padding: 0.55em 1em; border-radius: var(--sdb-btn-radius, 4px); background: #fff; color: var(--sdb-share-color, #222) !important; box-shadow: inset 0 0 0 1px var(--sdb-share-color, #222); text-decoration: none !important; transition: background-color 0.15s, color 0.15s; }
.sdb-share-btn svg { width: 1.15em; height: 1.15em; flex: none; fill: currentColor; }
.sdb-share-btn:hover, .sdb-share-btn:focus-visible { background: var(--sdb-share-color, #222); color: #fff !important; }
.sdb-share-x { --sdb-share-color: #000; }
.sdb-share-line { --sdb-share-color: #06a94d; }
.sdb-share-threads { --sdb-share-color: #333; }
.sdb-year-select { font: inherit; padding: 0.45em 0.6em; border-radius: 6px; border: 1px solid var(--sdb-line); background: transparent; color: inherit; }
.sdb-btn-small { padding: 0.35em 0.8em; font-size: 0.8em; }
.sdb-inline-form { font-size: 0.9em; margin: 0.5em 0 1em; }
/* 星 */
.sdb-stars { position: relative; display: inline-block; font-size: 1.05em; line-height: 1; letter-spacing: 0.05em; color: rgba(127,127,127,0.35); vertical-align: -0.05em; }
.sdb-stars::before { content: "★★★★★"; }
.sdb-stars-fill { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: #f5a623; }
.sdb-stars-fill::before { content: "★★★★★"; }
.sdb-stars-sm { font-size: 0.85em; }
.sdb-rating-line { font-size: 0.95em; }
.sdb-rate-input { border: 0; padding: 0; margin: 0 0 1em; display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
.sdb-rate-input legend { width: 100%; margin-bottom: 0.3em; }
.sdb-rate-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sdb-rate-input label { font-size: 2em; line-height: 1; color: rgba(127,127,127,0.35); cursor: pointer; padding: 0 0.05em; }
.sdb-rate-input input:checked ~ label, .sdb-rate-input label:hover, .sdb-rate-input label:hover ~ label { color: #f5a623; }
.sdb-rate-input input:focus-visible + label { outline: 2px solid var(--sdb-accent); }
.sdb-rate-help { order: -1; width: 100%; font-size: 0.78em; opacity: 0.7; margin-top: 0.2em; }
/* マイページ */
.sdb-mypage-nav { display: flex; flex-wrap: wrap; gap: 0.4em; margin: 0.5em 0 1em; position: sticky; top: 0; z-index: 2; padding: 0.4em 0; background: inherit; }
.sdb-mypage-nav a { font-size: 0.85em; padding: 0.35em 0.9em; border-radius: 999px; border: 1px solid var(--sdb-line); text-decoration: none; }
.sdb-unread { display: inline-block; min-width: 1.5em; padding: 0 0.4em; border-radius: 999px; background: var(--sdb-accent); color: #fff; font-size: 0.8em; text-align: center; }
.sdb-timeline { list-style: none; padding: 0; margin: 0 0 0.5em; }
.sdb-timeline li { padding: 0.6em 0.8em; border-bottom: 1px solid var(--sdb-line); }
.sdb-timeline li.is-unread { background: rgba(224, 36, 94, 0.08); border-left: 3px solid var(--sdb-accent); }
.sdb-tl-date { font-size: 0.8em; opacity: 0.65; margin-right: 0.3em; }
.sdb-chips-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6em 1.2em; }
.sdb-chips-list li { display: flex; align-items: center; gap: 0.4em; }
.sdb-chips-list .sdb-act { font-size: 0.75em; padding: 0.3em 0.7em; }
/* 画像プレビュー */
.sdb-modal { position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,0.75); display: flex; align-items: center; justify-content: center; padding: 16px; }
.sdb-modal-box { background: #fff; color: #222; border-radius: 12px; padding: 16px; max-width: 520px; width: 100%; max-height: 100%; overflow: auto; text-align: center; }
.sdb-modal-box img { width: 100%; height: auto; border-radius: 6px; display: block; }
.sdb-modal-actions { display: flex; flex-wrap: wrap; gap: 0.5em; justify-content: center; margin-top: 12px; }
.sdb-modal-note { font-size: 0.8em; color: #666; margin: 8px 0 0; }
/* セトリ（公演）検索 */
.sdb-live-search-form { padding: 1em; border: 1px solid var(--sdb-line); border-radius: 10px; margin-bottom: 1.2em; }
.sdb-ls-row { display: flex; flex-wrap: wrap; gap: 0.75em; margin-bottom: 0.75em; }
.sdb-ls-row label { display: flex; flex-direction: column; gap: 0.25em; font-size: 0.85em; font-weight: 600; flex: 1 1 140px; }
.sdb-ls-row label.sdb-ls-wide { flex: 2 1 220px; }
.sdb-ls-more summary { cursor: pointer; font-size: 0.85em; margin-bottom: 0.6em; }
.sdb-ls-submit { display: flex; align-items: center; gap: 1em; margin: 0.4em 0 0; }
.sdb-ls-results td small { opacity: 0.7; }
.sdb-pager { margin: 1.2em 0; display: flex; flex-wrap: wrap; gap: 0.4em; }
.sdb-pager .page-numbers { padding: 0.35em 0.75em; border: 1px solid var(--sdb-line); border-radius: 6px; text-decoration: none; }
.sdb-pager .page-numbers.current { background: #222; color: #fff; border-color: #222; }
/* 曲ごとの情報（◯年ぶり・ツアー初）と公演のトピック */
.sdb-badge-gap { background: #2271b1; border-color: #2271b1; color: #fff; font-weight: 700; }
.sdb-badge-tour { background: #7b4bc4; border-color: #7b4bc4; color: #fff; font-weight: 700; }
.sdb-badge-tour-nth { border-color: #7b4bc4; color: #7b4bc4; }
.sdb-highlights { margin: 0.5em 0 1em; padding: 0.8em 1em; border-radius: 8px; background: var(--sdb-soft); border-left: 4px solid var(--sdb-accent); }
.sdb-highlights-title { margin: 0 0 0.3em; font-weight: 800; font-size: 0.9em; }
.sdb-highlights ul { margin: 0; padding-left: 1.1em; font-size: 0.92em; }
.sdb-highlights li { margin: 0.2em 0; }
/* パンくず */
.sdb-breadcrumb { font-size: 0.8em; opacity: 0.8; margin: 0 0 1em; }
.sdb-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2em 0.5em; }
.sdb-breadcrumb li + li::before { content: "›"; margin-right: 0.5em; opacity: 0.6; }
/* 公演ページ：ツアーへの導線 */
.sdb-tour-nav { margin: 0.6em 0 1em; }
.sdb-tour-link { margin: 0 0 0.4em; font-weight: 700; }
.sdb-prevnext { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.6em 1em; font-size: 0.9em; margin: 1em 0; }
/* 前の公演・次の公演：青枠・黒文字のボタン。マウスを乗せると青で塗りつぶし（白文字） */
body .sdb a.sdb-pn-btn { display: inline-flex; align-items: center; gap: 0.5em; box-sizing: border-box; max-width: 100%; padding: 0.65em 1.1em; border-radius: var(--sdb-btn-radius, 4px); background: #fff; box-shadow: inset 0 0 0 1px var(--sdb-btn, #1087ef); color: #222; font-weight: 700; line-height: 1.4; text-decoration: none; transition: background-color 0.15s, color 0.15s; }
body .sdb a.sdb-pn-btn:hover, body .sdb a.sdb-pn-btn:focus-visible { background: var(--sdb-btn, #1087ef); color: #fff; }
.sdb-pn-arrow { font-size: 1.4em; line-height: 1; font-weight: 400; }
/* ツアーまとめへのボタン：日程表の「セトリを見る」と同じ共通部品（.sdb-week-btn.is-has）。ここでは位置の余白だけ決める（文字の大きさに合わせた幅） */
.sdb-tour-cta { margin: 0 0 1em; text-align: center; }
/* PC：左右2列の同じ幅（前の公演は左、次の公演は右。片方しかないときも位置は変わらない）。文字が長いときは、ボタンの中で折り返す */
.sdb-prevnext { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; gap: 0.6em 1em; }
body .sdb .sdb-prevnext a.sdb-pn-btn { display: flex; width: 100%; justify-content: space-between; text-align: left; }
.sdb-pn-text { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.sdb-prevnext .sdb-next-link { grid-column: 2; }
.sdb-prevnext .sdb-next-link .sdb-pn-text { text-align: right; }
.sdb-prevnext .sdb-prev { grid-column: 1; }
@media (max-width: 600px) { .sdb-prevnext { grid-template-columns: 1fr; } .sdb-prevnext .sdb-next-link, .sdb-prevnext .sdb-prev { grid-column: 1; } .sdb-prevnext .sdb-next-link .sdb-pn-text { text-align: left; } }
.sdb-info-time { display: inline-block; margin-left: 0.6em; }
/* 公演ページ：ツアーの日程表 */
.sdb-sched { margin: 1.5em 0 1em; }
.sdb-sched-table { width: 100%; border-collapse: collapse; font-size: 0.9em; }
.sdb-sched-table th, .sdb-sched-table td { padding: 0.5em 0.6em; border-bottom: 1px solid var(--sdb-line); text-align: left; vertical-align: middle; }
.sdb-sched-table th { font-weight: 600; white-space: nowrap; }
.sdb-sched-table th small { display: block; font-weight: 400; opacity: 0.75; }
.sdb-sched-pref { display: block; font-size: 0.85em; opacity: 0.75; }
.sdb-sched-time { display: block; font-size: 0.85em; font-weight: 400; opacity: 0.75; }
/* 見出しの行は、ほかの表（公演一覧など）と同じ薄いグレーの地（テーマの紫の地にしない） */
.sdb .sdb-sched-table thead th, table.sdb-sched-table thead th { background: #eef0f3; color: #333; font-size: 0.85em; font-weight: 600; opacity: 1; }
.sdb-shows-table td { vertical-align: middle; }
.sdb-week-date .sdb-sched-time { font-size: 0.9em; }
.sdb-sched-tour { display: block; font-size: 0.8em; opacity: 0.7; }
.sdb-artist-desc { margin: 0 0 1.2em; line-height: 1.8; }
.sdb-sched-part { font-size: 0.85em; opacity: 0.75; }
.sdb-sched-link { white-space: nowrap; text-align: left; }
.sdb-sched-table tr.is-current { background: rgba(224, 36, 94, 0.08); }
.sdb-sched-now { font-size: 0.8em; font-weight: 700; color: var(--sdb-accent); }
.sdb-sched.is-folded .sdb-sched-far { display: none; }
.sdb-sched-more { display: none; margin: 0.6em 0 0; text-align: center; }
.sdb-sched.is-folded .sdb-sched-more { display: block; }
.sdb-sched-more button { padding: 0.5em 1.4em; border: 1px solid var(--sdb-line); border-radius: 999px; background: none; color: inherit; font: inherit; font-size: 0.9em; cursor: pointer; }
/* 座席表・アリーナ構成（会場ページ） */
.sdb-seat-entry { margin: 1.2em 0; padding: 0.9em 1em; border: 1px solid var(--sdb-line); border-radius: 8px; scroll-margin-top: 80px; }
.sdb-seat-entry:target { border-color: var(--sdb-accent); }
.sdb .sdb-seat-h { margin: 0 0 0.3em; padding: 0; border: 0; background: none; font-size: 1.05em; font-weight: 700; }
.sdb .sdb-seat-h::before, .sdb .sdb-seat-h::after { content: none; }
.sdb-seat-tags { display: flex; flex-wrap: wrap; gap: 0.3em 0.4em; margin: 0.5em 0; }
.sdb-seat-text { margin: 0.5em 0; }
.sdb-seat-official { margin: 0.6em 0 1em; font-weight: 700; }
.sdb-seat-official small { font-weight: 400; opacity: 0.75; }
.sdb-seat-upcoming li { margin-bottom: 0.6em; }
.sdb-seat-more { margin: 1em 0; }
.sdb-seat-more summary { cursor: pointer; font-weight: 700; }
.sdb-seat-entry .twitter-tweet { margin: 0.6em 0 !important; }
.sdb-seat-tags-label { font-size: 0.85em; font-weight: 700; margin-right: 0.3em; align-self: center; }
.sdb-seat-toc { margin: 0.6em 0 1em; }
.sdb-artist-seat .sdb-h { scroll-margin-top: 80px; }
.sdb-seat-entrance { font-weight: 700; }
.sdb-seat-bino { margin: 0.6em 0; font-size: 0.9em; }
.sdb-seat-near { margin: 0.4em 0 0.8em; font-size: 0.95em; }
.sdb-seat-xlinks { display: flex; flex-wrap: wrap; gap: 0.4em 0.6em; margin: 0.8em 0 1.2em; font-size: 0.85em; }
.sdb-seat-x { display: inline-block; padding: 0.35em 0.9em; border: 1px solid var(--sdb-line); border-radius: 999px; text-decoration: none; }
/* ツアーまとめ */
.sdb-tour-meta { display: flex; flex-wrap: wrap; gap: 0.3em 1.2em; font-size: 0.9em; opacity: 0.9; }
.sdb-tour-updated { display: inline-block; font-size: 0.8em; font-weight: 700; color: var(--sdb-accent); background: rgba(224, 36, 94, 0.1); padding: 0.2em 0.8em; border-radius: 999px; margin: 0.5em 0 0; }
.sdb-lead { font-size: 0.88em; opacity: 0.75; margin: 0 0 0.8em; }
.sdb-rot-text { color: #7449c2; font-weight: 700; }
.sdb-base { list-style: none; margin: 0; padding: 0; }
.sdb-base li { display: grid; grid-template-columns: 2.2em minmax(0, 1fr) 7.5em; gap: 0.6em; align-items: center; padding: 0.4em 0; border-bottom: 1px dashed var(--sdb-line); }
.sdb-base li.sdb-base-head { display: block; border: 0; padding: 0.9em 0 0.2em; font-weight: 900; color: var(--sdb-accent); font-size: 0.9em; letter-spacing: 0.06em; }
.sdb-base li.is-rot .sdb-name { color: #7449c2; font-weight: 700; }
.sdb-base li.sdb-base-add { background: #f6f1fd; border-bottom-style: solid; }
.sdb-base li.sdb-base-add .sdb-no { color: #7449c2; font-weight: 900; text-align: center; }
.sdb-base li.sdb-base-add .sdb-name { color: #7449c2; font-weight: 700; }
.sdb-add-note { display: inline-block; margin-left: 0.5em; font-size: 0.82em; font-weight: 700; color: #7449c2; }
.sdb-add-note.is-out { color: #b32d2e; }
.sdb-no { text-align: right; opacity: 0.55; font-weight: 700; font-variant-numeric: tabular-nums; }
.sdb-name { min-width: 0; }
.sdb-rot-cands { display: block; font-size: 0.8em; font-weight: 400; color: #7449c2; }
.sdb-rate { display: grid; grid-template-columns: 1fr 3.2em; gap: 0.4em; align-items: center; font-size: 0.78em; opacity: 0.8; }
.sdb-bar { height: 6px; background: var(--sdb-soft); border-radius: 999px; overflow: hidden; }
.sdb-bar span { display: block; height: 100%; background: currentColor; opacity: 0.7; border-radius: 999px; }
.sdb-bar.is-rot span { background: #7449c2; opacity: 1; }
.sdb-rate-num { font-variant-numeric: tabular-nums; }
.sdb-latest { border: 1px solid var(--sdb-line); border-left: 4px solid var(--sdb-accent); border-radius: 10px; padding: 0.8em 1em; }
.sdb-latest-title { font-weight: 700; margin: 0 0 0.5em; }
.sdb-sub { display: block; font-size: 0.82em; font-weight: 400; opacity: 0.7; }
.sdb-changes { margin: 0.4em 0 0; display: grid; gap: 0.8em; }
.sdb-chg-group > .sdb-tag { margin-bottom: 0.4em; }
.sdb .sdb-chg-group ul { list-style: none; margin: 0; padding: 0 0 0 0.8em; border-left: 2px solid var(--sdb-line); display: grid; gap: 0.35em; }
.sdb .sdb-chg-group li { margin: 0; padding: 0; }
.sdb .sdb-chg-group li::before { content: none; }
.sdb-tag { display: inline-block; font-size: 0.72em; font-weight: 700; line-height: 1; padding: 0.3em 0.6em; border-radius: 999px; white-space: nowrap; }
.sdb-tag-new { background: var(--sdb-accent); color: #fff; }
.sdb-tag-in { background: rgba(42, 111, 176, 0.14); color: #2a6fb0; }
.sdb-tag-out { background: var(--sdb-soft); opacity: 0.85; }
.sdb-tag-swap { background: rgba(116, 73, 194, 0.14); color: #7449c2; }
.sdb-tag-order { background: var(--sdb-soft); }
.sdb-matrix-wrap { overflow-x: auto; border: 1px solid var(--sdb-line); border-radius: 10px; }
.sdb-matrix { border-collapse: separate; border-spacing: 0; font-size: 0.8em; width: 100%; min-width: 600px; }
.sdb-matrix th, .sdb-matrix td { padding: 0.4em; border-bottom: 1px solid var(--sdb-line); text-align: center; white-space: nowrap; }
.sdb-matrix thead th { font-size: 0.85em; font-weight: 700; opacity: 0.85; line-height: 1.3; vertical-align: bottom; }
.sdb-matrix thead th a { text-decoration: none; }
.sdb-matrix thead th .sdb-mx-venue, .sdb-matrix thead th .sdb-mx-part { display: block; white-space: normal; overflow-wrap: anywhere; min-width: 5em; max-width: 7.5em; margin: 0 auto; font-weight: 500; }
.sdb-matrix thead th .sdb-mx-part { font-size: 0.9em; opacity: 0.8; }
.sdb-song-col { text-align: left !important; position: sticky; left: 0; z-index: 1; background: var(--sdb-bg, #fff); max-width: 11em; overflow: hidden; text-overflow: ellipsis; border-right: 1px solid var(--sdb-line); }
.sdb-matrix tbody th.sdb-song-col { font-weight: 500; }
/* 曲名の列は、横にスクロールしたとき、後ろの列が透けないよう、不透明な白にする（テーマの th の薄い背景色に負けないよう、強く指定する） */
.sdb .sdb-matrix tbody th.sdb-song-col { background-color: var(--sdb-matrix-bg, #fff); }
.sdb-matrix tr.is-rot th.sdb-song-col { color: #7449c2; font-weight: 700; }
.sdb-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: rgba(127, 127, 127, 0.45); vertical-align: middle; }
.sdb-dot.is-rot { background: #7449c2; }
.sdb-dot.is-first { background: var(--sdb-accent); box-shadow: 0 0 0 3px rgba(224, 36, 94, 0.18); }
.sdb-dot.is-empty { background: transparent; border: 1px solid var(--sdb-line); width: 8px; height: 8px; }
.sdb-keys { display: flex; flex-wrap: wrap; gap: 0.3em 1em; font-size: 0.78em; opacity: 0.8; }
.sdb-keys span { display: inline-flex; align-items: center; gap: 0.4em; }
.sdb-history { list-style: none; margin: 0 0 0 0.4em; padding: 0; border-left: 2px solid var(--sdb-line); }
.sdb-history > li { position: relative; padding: 0 0 1em 1.1em; }
.sdb-history > li::before { content: ""; position: absolute; left: -7px; top: 0.55em; width: 12px; height: 12px; border-radius: 50%; background: var(--sdb-bg, #fff); border: 2px solid rgba(127, 127, 127, 0.45); }
.sdb-history > li.has-change::before { border-color: var(--sdb-accent); background: var(--sdb-accent); }
.sdb-h-date { font-weight: 700; }
.sdb-predict { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.75em; }
.sdb-p-card { border: 1px solid var(--sdb-line); border-radius: 10px; padding: 0.8em 1em; min-width: 0; }
.sdb-p-card h3 { font-size: 0.95em; margin: 0 0 0.5em; }
.sdb-p-card ul { margin: 0; padding-left: 1.1em; font-size: 0.9em; }
.sdb-pct { opacity: 0.65; font-size: 0.85em; font-variant-numeric: tabular-nums; }
.sdb-next strong { font-weight: 800; }
.sdb-chip { display: inline-block; font-size: 0.72em; font-weight: 700; padding: 0.15em 0.6em; border-radius: 999px; background: var(--sdb-soft); }
.sdb-chip.is-chg { background: rgba(224, 36, 94, 0.12); color: var(--sdb-accent); }
.sdb-table tr.is-upcoming td { opacity: 0.6; }
@media (max-width: 480px) { .sdb-base li { grid-template-columns: 2em minmax(0, 1fr) 5.5em; } }
.sdb-term-summary { margin: 1em 0 2em; }

/* セトリのパターン（A・B…） */
.sdb-pat { display: inline-block; min-width: 1.6em; padding: 0 0.35em; margin-right: 0.45em; border-radius: 4px; font-size: 0.75em; font-weight: 700; line-height: 1.6; text-align: center; color: #fff; background: #666; vertical-align: 0.1em; }
.sdb-pat-a { background: #e0245e; }
.sdb-pat-b { background: #2a6fb0; }
.sdb-pat-c { background: #2e9e6b; }
.sdb-pat-d { background: #c77700; }
.sdb-matrix th .sdb-pat { margin: 0.2em 0 0; }
.sdb .sdb-pat-h { margin-top: 1.6em; }

/* 表の罫線：テーマ（SWELL）は本文の中の表にだけ縦の線を引くので、本文の外（アーティストページなど）でも同じになるよう、ここで引く */
.sdb table.sdb-table, table.sdb-table, table.sdb-sched-table { border-collapse: collapse; }
.sdb table.sdb-table th, .sdb table.sdb-table td, table.sdb-table th, table.sdb-table td, table.sdb-sched-table th, table.sdb-sched-table td { border: 1px solid #dcdcdc; }
/* 表の見出し：テーマが白文字にしても読めるように、薄いグレーの地に本文と同じ色の文字 */
.sdb .sdb-table thead th, .sdb .sdb-matrix thead th, .sdb-table-wrap .sdb-table thead th, table.sdb-table thead th, table.sdb-matrix thead th { background: #eef0f3; color: #333; }
.sdb .sdb-matrix thead th { opacity: 1; }
.sdb .sdb-matrix thead th a { color: inherit; }

/* 毎公演セトリが変わるツアー：セトリの傾向 */
.sdb .sdb-free-h { margin-top: 1.8em; }
.sdb-free-meta { margin-bottom: 0.5em; }
.sdb-tiers { display: grid; gap: 0.8em; }
.sdb-tier { border: 1px solid var(--sdb-line); border-left: 4px solid var(--sdb-accent); border-radius: 6px; padding: 0.7em 0.9em; }
.sdb-tier-1 { border-left-color: #2a6fb0; }
.sdb-tier-2 { border-left-color: #2e9e6b; }
.sdb-tier-3 { border-left-color: #999; }
.sdb .sdb-tier-h { margin: 0 0 0.4em; display: flex; align-items: baseline; gap: 0.6em; }
.sdb .sdb-tier-h .sdb-sub { display: inline; }
.sdb .sdb-tier ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35em 0.5em; }
.sdb .sdb-tier li { margin: 0; padding: 0.2em 0.6em; background: var(--sdb-soft); border-radius: 999px; font-size: 0.92em; }
.sdb .sdb-tier li::before { content: none; }
.sdb .sdb-tier .sdb-rate-num, .sdb-pos-table .sdb-rate-num { font-size: 0.8em; opacity: 0.7; }
.sdb .sdb-pos-table th { width: 7em; background: var(--sdb-soft); color: inherit; }
.sdb ul.sdb-once { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15em, 1fr)); gap: 0.5em 1.2em; }
.sdb ul.sdb-once li { margin: 0; padding: 0 0 0.4em; border-bottom: 1px dashed var(--sdb-line); }
.sdb ul.sdb-once li::before { content: none; }
.sdb-history .sdb-h-date + .sdb-sub { display: inline; margin-left: 0.6em; }

/* 曲ではない行の見せ方（入力ルールの「見せ方」ごと） */
.sdb ol.sdb-setlist > li.sdb-ns-normal { font-size: 1em; opacity: 1; letter-spacing: 0; padding-top: 0.35em; padding-bottom: 0.35em; }
.sdb ol.sdb-setlist > li.sdb-ns-normal::before { content: "―"; opacity: 0.45; }
.sdb ol.sdb-setlist > li.sdb-ns-heading { font-size: 0.95em; font-weight: 700; opacity: 1; letter-spacing: 0.04em; color: var(--sdb-accent); padding: 0.7em 0 0.35em; border-bottom-style: solid; }
.sdb ol.sdb-setlist > li.sdb-ns-heading::before { content: none; }
.sdb ol.sdb-setlist > li.sdb-ns-sub { padding: 0 0 0.35em 3.4em; margin-top: -0.2em; font-size: 0.8em; opacity: 0.75; letter-spacing: 0; }
.sdb ol.sdb-setlist > li.sdb-ns-sub::before { content: "└"; left: 2.3em; top: 0; opacity: 0.6; }
/* メドレー：名前の行と、中の曲（左に線を引いて範囲が分かるように） */
.sdb ol.sdb-setlist > li.sdb-medley-head { font-size: 0.9em; font-weight: 700; opacity: 1; letter-spacing: 0; padding: 0.6em 0 0.35em; border-bottom: 0; }
.sdb ol.sdb-setlist > li.sdb-medley-head::before { content: none; }
.sdb-medley-label { display: inline-block; margin-right: 0.6em; padding: 0.15em 0.6em; border-radius: 999px; font-size: 0.8em; line-height: 1.4; color: #fff; background: #7449c2; }
.sdb ol.sdb-setlist > li.in-medley { margin-left: 0.45em; padding-left: 2.9em; border-left: 3px solid #7449c2; }
.sdb ol.sdb-setlist > li.in-medley::before { left: 0.7em; }
.sdb ol.sdb-setlist > li.in-medley.no-num::before { content: "・"; }
.sdb ol.sdb-setlist > li.in-medley.sdb-ns-sub { padding-left: 4.1em; }
.sdb ol.sdb-setlist > li.in-medley.sdb-ns-sub::before { left: 3em; }
/* 曲の強調（入力ルールの「曲の強調」） */
.sdb ol.sdb-setlist > li.sdb-mark-red > a { color: #d63638; font-weight: 700; }
.sdb ol.sdb-setlist > li.sdb-mark-bold > a { font-weight: 800; }
.sdb ol.sdb-setlist > li.sdb-mark-marker > a { background: linear-gradient(transparent 55%, #ffe66d 55%); font-weight: 700; }
.sdb ol.sdb-setlist > li.sdb-mark-color > a { color: var(--sdb-mark, #d63638); font-weight: 700; }
/* 曲の注釈（※）のうち、登録してあるもの（弾き語り など）はラベルで */
.sdb-note-label { display: inline-block; margin-left: 0.3em; padding: 0.2em 0.6em; border-radius: 4px; font-size: 0.72em; font-weight: 700; line-height: 1.3; color: #2a6fb0; background: rgba(42, 111, 176, 0.12); vertical-align: middle; white-space: nowrap; }
.sdb-note-counts { margin: 0 0 0.8em; font-size: 0.9em; }
.sdb-note-counts .sdb-note-label { margin-left: 0; }
/* ツアーまとめ：早見表と日別セトリの切り替え */
.sdb-view-tabs { display: inline-flex; margin: 0 0 0.9em; border: 1px solid var(--sdb-line); border-radius: 999px; overflow: hidden; }
.sdb .sdb-view-tab { appearance: none; border: 0; margin: 0; padding: 0.5em 1.3em; background: transparent; color: inherit; font: inherit; font-size: 0.9em; font-weight: 700; line-height: 1.4; cursor: pointer; }
.sdb .sdb-view-tab.is-on { background: var(--sdb-accent); color: #fff; }
.sdb-daily { display: grid; grid-template-columns: repeat(auto-fill, minmax(17em, 1fr)); gap: 1em; align-items: start; }
.sdb-daily-show { border: 1px solid var(--sdb-line); border-radius: 8px; padding: 0.8em 0.9em; background: var(--sdb-soft); }
.sdb p.sdb-daily-h { font-weight: 700; margin: 0 0 0.5em; padding: 0 0 0.5em; border: 0; border-bottom: 1px solid var(--sdb-line); background: none; font-size: 0.95em; line-height: 1.4; color: inherit; }
.sdb .sdb-daily-h::before, .sdb .sdb-daily-h::after { content: none; }
.sdb .sdb-daily-h .sdb-sub { display: block; margin-top: 0.15em; }
.sdb ol.sdb-daily-list { list-style: none; margin: 0; padding: 0; font-size: 0.88em; }
.sdb ol.sdb-daily-list > li { display: flex; gap: 0.6em; margin: 0; padding: 0.22em 0; line-height: 1.45; }
.sdb ol.sdb-daily-list > li::before { content: none; }
.sdb-daily-list .sdb-no { flex: 0 0 1.6em; text-align: right; opacity: 0.55; font-variant-numeric: tabular-nums; }
.sdb-daily-list li.is-rot .sdb-name { color: #7449c2; font-weight: 700; }
.sdb-daily-list .sdb-tag { margin-left: 0.4em; }
.sdb ol.sdb-daily-list > li.sdb-daily-en { padding: 0.5em 0 0.1em; font-size: 0.82em; font-weight: 900; letter-spacing: 0.06em; color: var(--sdb-accent); }
/* ツアー一覧・アーティスト一覧（ジャンルの切り替え） */
.sdb-genre-tabs { display: flex; flex-wrap: wrap; gap: 0.5em; margin: 0 0 1.2em; }
.sdb-genre-tabs a { padding: 0.4em 1em; border-radius: 999px; border: 1px solid var(--sdb-line); text-decoration: none; font-size: 0.9em; font-weight: 700; line-height: 1.4; color: inherit; }
.sdb-genre-tabs a:hover { border-color: var(--sdb-accent); }
.sdb-genre-tabs a.is-on { background: var(--sdb-accent); border-color: var(--sdb-accent); color: #fff; }
.sdb p.sdb-genre-lead { margin: 0 0 1.2em; }
.sdb ul.sdb-tourlist { list-style: none; margin: 0.6em 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(17em, 1fr)); gap: 0.8em; }
.sdb ul.sdb-tourlist > li { margin: 0; padding: 0.8em 0.9em; border: 1px solid var(--sdb-line); border-radius: 8px; background: var(--sdb-soft); list-style: none; }
.sdb ul.sdb-tourlist > li::before { content: none; }
.sdb .sdb-tourcard p { margin: 0; padding: 0; line-height: 1.5; }
.sdb .sdb-tourcard-title { font-weight: 700; }
.sdb .sdb-tourcard-artist { font-size: 0.85em; margin-top: 0.2em; }
.sdb .sdb-tourcard-artist .sdb-badge { margin-left: 0.2em; }
.sdb .sdb-tourcard-meta { font-size: 0.8em; opacity: 0.75; margin-top: 0.45em; }
.sdb .sdb-tourcard-next { font-size: 0.85em; margin-top: 0.35em; }
.sdb .sdb-tourcard-next strong { color: var(--sdb-accent); }
.sdb ul.sdb-week { list-style: none; margin: 0.6em 0 0; padding: 0; border-top: 1px solid var(--sdb-line); }
.sdb ul.sdb-week > li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3em 0.8em; margin: 0; padding: 0.6em 0.2em; border-bottom: 1px solid var(--sdb-line); list-style: none; }
.sdb ul.sdb-week > li::before { content: none; }
.sdb ul.sdb-week > li.is-today { background: rgba(224, 36, 94, 0.06); }
.sdb-week-date { flex: 0 0 auto; min-width: 7.5em; font-size: 0.85em; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sdb-week-date em { font-style: normal; font-size: 0.85em; color: var(--sdb-accent); }
.sdb-week-name { flex: 1 1 12em; min-width: 0; line-height: 1.45; }
.sdb-week-name small { display: block; font-size: 0.78em; opacity: 0.7; }
.sdb a.sdb-week-btn { flex: 0 0 auto; padding: 0.35em 0.9em; border-radius: 999px; background: var(--sdb-accent); border: 1px solid var(--sdb-accent); color: #fff; font-size: 0.8em; font-weight: 700; line-height: 1.4; text-decoration: none; white-space: nowrap; }
.sdb a.sdb-week-btn.is-has { background: transparent; border-color: var(--sdb-line); color: inherit; }
.sdb a.sdb-send-btn { display: inline-block; padding: 0.2em 0.8em; border-radius: 999px; background: var(--sdb-accent); color: #fff; font-size: 0.8em; font-weight: 700; line-height: 1.5; text-decoration: none; white-space: nowrap; }
/* スマホ：日付を名前の上に小さく、ボタンは右に小さく（1件を2〜3行におさめる） */
@media (max-width: 600px) {
	.sdb ul.sdb-week > li { display: grid; grid-template-columns: 1fr auto; column-gap: 0.6em; row-gap: 0.1em; padding: 0.5em 0.1em; }
	.sdb-week-date { grid-column: 1; min-width: 0; font-size: 0.75em; }
	.sdb-week-date .sdb-sched-time { display: inline; margin-left: 0.5em; }
	.sdb-week-name { grid-column: 1; font-size: 0.92em; line-height: 1.4; }
	.sdb ul.sdb-week > li > a.sdb-week-btn { grid-column: 2; grid-row: 1 / span 2; align-self: center; padding: 0.25em 0.65em; font-size: 0.72em; }
}
.sdb ul.sdb-artistlist { list-style: none; margin: 0.6em 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(13em, 1fr)); gap: 0 1.2em; }
.sdb ul.sdb-artistlist > li { margin: 0; padding: 0.5em 0.1em; border-bottom: 1px dashed var(--sdb-line); list-style: none; line-height: 1.45; }
.sdb ul.sdb-artistlist > li::before { content: none; }
.sdb ul.sdb-artistlist small { opacity: 0.65; white-space: nowrap; }
.sdb-artists .sdb-h a { color: inherit; text-decoration: none; }
/* 公演ページ：この公演のポイント */
.sdb ul.sdb-points { list-style: none; margin: 0.6em 0 0; padding: 0; }
.sdb ul.sdb-points > li { margin: 0; padding: 0.55em 0.2em; border-bottom: 1px dashed var(--sdb-line); line-height: 1.6; list-style: none; }
.sdb ul.sdb-points > li::before { content: none; }
.sdb ul.sdb-points .sdb-changes { margin-top: 0.5em; }
/* 公演メモ（影ナレ・見学者など） */
.sdb p.sdb-daily-extra { margin: 0 0 0.35em; padding: 0; font-size: 0.82em; line-height: 1.5; }
.sdb p.sdb-daily-extra span { display: inline-block; margin-right: 0.5em; padding: 0 0.5em; border: 1px solid var(--sdb-line); border-radius: 999px; font-size: 0.9em; font-weight: 700; }
.sdb-extras td:first-child { white-space: nowrap; }
.sdb table.sdb-info-bottom { margin-top: 1em; }
.sdb p.sdb-daily-extra.is-bottom { margin: 0.6em 0 0; padding-top: 0.5em; border-top: 1px solid var(--sdb-line); }

/* フェス・イベントのまとめページ */
.sdb-ev-tools { margin: 0.5em 0 1em; }
.sdb-ev-grp-tools { margin: -0.2em 0 0.6em; text-align: right; }
/* テーマが枠の中の最初の見出しの上を0にするので、枠のほうに間を付ける */
.sdb-ev-stagebox { margin-top: 2em; }
.sdb-ev-day > .sdb-ev-grp-tools + .sdb-ev-stagebox { margin-top: 1em; }
.sdb-ev-grp-tools .sdb-btn { font-size: 0.82em; padding: 0.2em 0.8em; }
.sdb-ev-toc { border: 1px solid #ddd; border-radius: 6px; padding: 0.6em 1em; margin: 0 0 1em; font-size: 0.92em; }
.sdb-ev-toc-h { font-weight: 700; margin: 0 0 0.3em; }
.sdb-ev-toc ul { margin: 0; padding-left: 1.2em; }
.sdb-ev-toc ul ul { margin: 0.1em 0 0.3em; }
.sdb-ev-stage { font-size: 1.05em; margin: 1.4em 0 0.5em; padding-left: 0.6em; border-left: 4px solid var(--sdb-accent); }
.sdb-ev-act { border: 1px solid var(--sdb-line); border-radius: 8px; margin: 0 0 0.5em; background: #fff; }
.sdb-ev-act > summary { cursor: pointer; padding: 0.6em 0.9em; display: flex; gap: 0.8em; align-items: baseline; list-style: none; }
.sdb-ev-act > summary::-webkit-details-marker { display: none; }
/* 開閉の記号：「セトリを見る」ボタンの矢印と同じ丸い形。閉じているときは下向き、開いているときは上向き。
   色は共通部品の --sdb-btn（白い面の上なので、丸は色地・矢印は白） */
.sdb-ev-act > summary { align-items: center; }
.sdb-ev-act > summary::before {
	content: "\203A";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.5em;
	height: 1.5em;
	border-radius: 50%;
	background: var(--sdb-btn, #1087ef);
	color: #fff;
	font-size: 0.85em;
	font-weight: 700;
	line-height: 1;
	padding-bottom: 0.1em;
	box-sizing: border-box;
	transform: rotate(90deg);
	transition: transform 0.2s;
}
.sdb-ev-act[open] > summary::before { transform: rotate(-90deg); }
.sdb-ev-time { font-variant-numeric: tabular-nums; opacity: 0.75; min-width: 3.6em; }
.sdb-ev-name { font-weight: 700; flex: 1; }
.sdb-ev-state { font-size: 0.85em; opacity: 0.7; white-space: nowrap; }
.sdb-ev-act.is-wait .sdb-ev-name { opacity: 0.75; }
.sdb-ev-body { padding: 0 1em 0.8em 2.4em; }
.sdb-ev-setlist { margin: 0 0 0.6em 1.2em; }
.sdb-ev-setlist li.sdb-ev-en { list-style: none; margin-left: -1.2em; font-weight: 700; color: var(--sdb-accent); }
.sdb-ev-links { font-size: 0.9em; margin: 0; }
.sdb-ev-lv { display: flex; gap: 0.8em; align-items: baseline; padding: 0.6em 0.9em 0.6em 2.3em; background: #fafafa; border-style: dashed; }
.sdb-ev-lv .sdb-ev-name { font-weight: 500; opacity: 0.8; }
.sdb-recent-pages { margin: 0; padding: 0; list-style: none; }
.sdb-recent-pages li { padding: 0.5em 0; border-bottom: 1px solid #eee; line-height: 1.5; }
.sdb-recent-pages .sdb-badge { font-size: 0.75em; }
.sdb-recent-more { margin: 0.6em 0 0; font-size: 0.9em; text-align: right; }.sdb-eyecatch-top { margin: 0 0 1.5em; }
.sdb-eyecatch-top img { display: block; width: 100%; height: auto; border-radius: 4px; }.sdb-tour-tags { font-size: 0.9em; margin: 0.4em 0 0.8em; line-height: 1.8; }
.sdb-tour-tags a { margin-right: 0.3em; }
.sdb-tour-tags small { color: #888; margin-right: 0.6em; }.sdb-home { margin: 0 0 2em; }
.sdb-home-search { display: flex; gap: 0.5em; margin: 0 0 1.5em; }
.sdb-home-search input[type="search"] { flex: 1; min-width: 0; padding: 0.7em 0.9em; font-size: 1em; border: 2px solid var(--sdb-accent, #872be2); border-radius: 6px; }
.sdb-home-search button { padding: 0 1.2em; border: 0; border-radius: 6px; background: var(--sdb-accent, #872be2); color: #fff; font-weight: 700; cursor: pointer; }
.sdb-home-chips { display: flex; flex-wrap: wrap; gap: 0.5em; margin: 0.5em 0 1em; }
.sdb-home-chips a { display: inline-block; padding: 0.35em 0.9em; border: 1px solid #ddd; border-radius: 999px; font-size: 0.9em; text-decoration: none; }
.sdb-home-chips a:hover { border-color: var(--sdb-accent, #872be2); }
.sdb-home-posts { margin: 0; padding: 0; list-style: none; }
.sdb-home-posts li { padding: 0.5em 0; border-bottom: 1px solid #eee; }
.sdb-home-posts small { color: #888; }
.sdb-home-submit { padding: 1em 1.2em; border: 1px dashed var(--sdb-accent, #872be2); border-radius: 8px; text-align: center; }
/* ---------- 2列の表（スマホで横にはみ出さない）と、横スクロールの表の目印 ---------- */
/* 列の幅は文字から計算させずに決めておく（読み込みの途中や書体が切り替わるときに、1列目が細くなってから広がるのを防ぐ）
   左の列は「2026.10.09（金）」と「開場 17:00 ／ 開演 18:30」が1行ずつ入る幅、残りを会場の列に */
.sdb-sched-table { table-layout: fixed; width: 100%; }
.sdb-sched-table th { white-space: normal; width: 11.5em; }
.sdb-sched-day { white-space: nowrap; }
.sdb-sched-time { white-space: normal; }
.sdb-sched-table th .sdb-sched-time { white-space: nowrap; font-size: 0.82em; letter-spacing: -0.01em; }
.sdb-sched-table td { overflow-wrap: anywhere; }
.sdb-sched-act { margin-top: 0.35em; text-align: right; }
.sdb-sched-marks { display: block; margin-top: 0.3em; font-size: 0.85em; font-weight: 400; white-space: normal; line-height: 1.8; }
.sdb-mark { display: inline-block; margin-left: 0.3em; font-size: 0.9em; opacity: 0.85; white-space: nowrap; }
.sdb-two-col td { vertical-align: middle; }
.sdb-two-col, .sdb-tour-list { table-layout: fixed; width: 100%; }
.sdb-two-col td.sdb-num { width: 7.5em; text-align: right; white-space: nowrap; }
.sdb-tour-count { width: 8.5em; text-align: right; white-space: normal; }
.sdb-two-col td.sdb-num .sdb-mark { display: block; margin: 0; }
/* よく演奏される曲：左（順位＋曲名）は左寄せ。右は2行（1行目：回数・演奏率、2行目：最終演奏日） */
.sdb-two-col.sdb-ranking td:first-child { text-align: left; width: auto; font-weight: inherit; }
.sdb-two-col.sdb-ranking td.sdb-num { width: 12.5em; line-height: 1.5; }
.sdb-two-col.sdb-ranking td.sdb-num .sdb-mark { display: inline; margin: 0 0 0 0.6em; font-size: 0.85em; }
.sdb-two-col.sdb-ranking td.sdb-num .sdb-sched-time { display: block; margin-top: 0.1em; }
.sdb-rank { display: inline-block; min-width: 1.8em; font-weight: 700; color: var(--sdb-accent); }
.sdb-tour-list td small { display: block; }
@media (max-width: 600px) {
	.sdb-sched-table, .sdb-two-col, .sdb-tour-list { font-size: 0.85em; }
}
/* 横に動かせる表（比較表・公演メモなど）：端に薄い影を出して、続きがあることを分かるようにする */
.sdb-table-wrap, .sdb-matrix-wrap {
	background:
		linear-gradient(to right, #fff 30%, rgba(255, 255, 255, 0)),
		linear-gradient(to left, #fff 30%, rgba(255, 255, 255, 0)) 100% 0,
		radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0)),
		radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0)) 100% 0;
	background-repeat: no-repeat;
	background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
	background-attachment: local, local, scroll, scroll;
}
.sdb-sched-artist { display: block; font-weight: 600; }

/* セトリ入力の補助ボタン：あとから書いた「札」(.sdb-chip) の地の色に負けて、白い文字が見えなくなっていたので、ここで上書きする */
.sdb-picker .sdb-chip { font-size: 0.85em; font-weight: 400; padding: 0.3em 0.7em; }
.sdb-picker .sdb-chip-en { background: var(--sdb-accent); border-color: var(--sdb-accent); color: #fff; font-weight: 700; }
.sdb-form-basics { margin: 0.4em 0 0.6em; padding: 0.7em 0.9em; border-radius: 8px; background: var(--sdb-soft); font-size: 0.9em; line-height: 1.8; }
.sdb-form-basics ul { margin: 0.2em 0 0; padding-left: 1.2em; }
.sdb-form-more { font-size: 0.85em; margin: 0.4em 0 0; }
.sdb-form-more summary { cursor: pointer; }
/* 固定セトリの「基本セトリとの違い」 */
.sdb-chg-text { margin: 0.3em 0 0.2em; }
.sdb-fixed-set { margin: 0.2em 0 0.4em; font-size: 0.92em; }
.sdb-fixed-set summary { cursor: pointer; color: var(--sdb-accent); font-size: 0.9em; }
.sdb-tag-again { margin-left: 0.4em; font-size: 0.7em; padding: 0.05em 0.5em; border-radius: 999px; background: var(--sdb-soft); color: inherit; font-weight: 400; opacity: 0.85; }
/* セトリ確認中（曲順確認中・速報） */
.sdb-chip.is-unsure { background: #fff4d6; color: #8a5a00; }
.sdb-cert p { margin: 0.3em 0; }
.sdb-cert .sdb-btn { margin-left: 0.4em; }

/* ---------- 切り替えボタン（丸い形）の共通部品 ----------
   対象：ジャンルの切り替え・セトリ検索/曲検索の切り替え・マイページのナビ・トップの札・ページ送り・比較表/日別の切り替え
   普段は白地＋色の枠＋黒い文字、マウスを乗せたとき・選択中・いま見ているページは色地＋白い文字。
   色は下の変数だけで決める。
     全体の色を変える：追加CSS などで  :root { --sdb-btn: #222; }  のように上書きする（黒にする例）
     一部だけ黒にする：そのボタンの入れ物（または a の並びのタグ）に class="sdb-tone-dark" を足す
   黒い「実行ボタン」(.sdb-btn) は別の部品で、ここでは変えない。 */
:root { --sdb-btn: #1087ef; --sdb-btn-text: #222; --sdb-btn-on-text: #fff; --sdb-btn-radius: 4px; } /* 角の丸み：4px＝少しだけ丸い四角。丸いボタン（Google 広告のボタンに似る）に戻すなら 999px */
.sdb-tone-dark { --sdb-btn: #222; }
/* テーマのリンクの色・下線に負けないよう、指定を強くしてある */
body .sdb-tabs.sdb-tabs a,
body .sdb-genre-tabs.sdb-genre-tabs a,
body .sdb-mypage-nav.sdb-mypage-nav a,
body .sdb-home-chips.sdb-home-chips a,
body .sdb-pager.sdb-pager a.page-numbers,
body .sdb-pager.sdb-pager span.page-numbers.current {
	background: #fff;
	color: var(--sdb-btn-text);
	border: 1px solid var(--sdb-btn);
	border-radius: var(--sdb-btn-radius);
	text-decoration: none;
	transition: background-color 0.15s, color 0.15s;
}
body .sdb-tabs.sdb-tabs a:hover,
body .sdb-tabs.sdb-tabs a:focus-visible,
body .sdb-tabs.sdb-tabs a.is-active,
body .sdb-tabs.sdb-tabs a[aria-current="page"],
body .sdb-genre-tabs.sdb-genre-tabs a:hover,
body .sdb-genre-tabs.sdb-genre-tabs a:focus-visible,
body .sdb-genre-tabs.sdb-genre-tabs a.is-on,
body .sdb-genre-tabs.sdb-genre-tabs a[aria-current="page"],
body .sdb-mypage-nav.sdb-mypage-nav a:hover,
body .sdb-mypage-nav.sdb-mypage-nav a:focus-visible,
body .sdb-mypage-nav.sdb-mypage-nav a[aria-current="page"],
body .sdb-home-chips.sdb-home-chips a:hover,
body .sdb-home-chips.sdb-home-chips a:focus-visible,
body .sdb-home-chips.sdb-home-chips a[aria-current="page"],
body .sdb-pager.sdb-pager a.page-numbers:hover,
body .sdb-pager.sdb-pager a.page-numbers:focus-visible,
body .sdb-pager.sdb-pager span.page-numbers.current {
	background: var(--sdb-btn);
	border-color: var(--sdb-btn);
	color: var(--sdb-btn-on-text);
}
/* 比較表／日別セトリの切り替え（外枠の中にボタンが並ぶ形） */
body .sdb .sdb-view-tabs { border-color: var(--sdb-btn); border-radius: var(--sdb-btn-radius); }
body .sdb .sdb-view-tabs .sdb-view-tab { background: transparent; color: var(--sdb-btn-text); transition: background-color 0.15s, color 0.15s; }
body .sdb .sdb-view-tabs .sdb-view-tab:hover,
body .sdb .sdb-view-tabs .sdb-view-tab:focus-visible,
body .sdb .sdb-view-tabs .sdb-view-tab.is-on { background: var(--sdb-btn); color: var(--sdb-btn-on-text); }
/* 日程表・今週の公演のボタン
   「セトリを見る」（主役）＝色地＋白い文字＋右に白い丸の矢印／「＋ セトリを教える」（脇役）＝白地＋色の枠＋色の文字
   「開催前」などはボタンにせず、薄い灰色の文字だけ（.sdb-wait-note）。色は --sdb-btn（共通部品の変数）。 */
body .sdb a.sdb-week-btn.sdb-week-btn,
body .sdb a.sdb-send-btn.sdb-send-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	padding: 0.35em 0.9em;
	border-radius: var(--sdb-btn-radius);
	background: #fff;
	border: 1px solid var(--sdb-btn);
	color: var(--sdb-btn);
	font-size: 0.8em;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.15s, color 0.15s, filter 0.15s;
}
body .sdb a.sdb-week-btn.sdb-week-btn:hover,
body .sdb a.sdb-week-btn.sdb-week-btn:focus-visible,
body .sdb a.sdb-send-btn.sdb-send-btn:hover,
body .sdb a.sdb-send-btn.sdb-send-btn:focus-visible { background: var(--sdb-btn); color: var(--sdb-btn-on-text); }
body .sdb a.sdb-week-btn.sdb-week-btn.is-has { background: var(--sdb-btn); color: var(--sdb-btn-on-text); padding-right: 0.55em; }
body .sdb a.sdb-week-btn.sdb-week-btn.is-has:hover,
body .sdb a.sdb-week-btn.sdb-week-btn.is-has:focus-visible { filter: brightness(0.92); }
body .sdb a.sdb-week-btn.sdb-week-btn.is-has::after {
	content: "\203A";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.5em;
	height: 1.5em;
	border-radius: 50%;
	background: var(--sdb-btn-on-text);
	color: var(--sdb-btn);
	font-size: 1em;
	font-weight: 700;
	line-height: 1;
	padding-bottom: 0.1em;
	box-sizing: border-box;
}
/* 「セトリを見る」の共通部品の、大きさ違い（デザインは共通のまま、大きさだけ決める）。
   前の公演・次の公演のボタン（.sdb-pn-btn）と同じ大きさ。矢印の丸は文字の大きさ（em）に比例して大きくなる。 */
body .sdb a.sdb-week-btn.sdb-week-btn.is-large,
body .sdb a.sdb-week-btn.sdb-week-btn.is-large.is-has { font-size: 0.9em; padding: 0.65em 0.7em 0.65em 1.1em; gap: 0.7em; }
@media (max-width: 600px) {
	body .sdb a.sdb-week-btn.sdb-week-btn.is-large, body .sdb a.sdb-week-btn.sdb-week-btn.is-large.is-has { padding: 0.65em 0.7em 0.65em 1.1em; }
}
.sdb .sdb-wait-note { color: #999; font-size: 0.85em; white-space: nowrap; }
@media (max-width: 600px) {
	body .sdb a.sdb-week-btn.sdb-week-btn, body .sdb a.sdb-send-btn.sdb-send-btn { padding: 0.25em 0.65em; }
	body .sdb a.sdb-week-btn.sdb-week-btn.is-has { padding-right: 0.4em; }
}
/* サイドバーの「いま開いているアーティストのよく演奏される曲」（[setlist_artist_ranking]） */
/* サイドバーの見出しの共通の形（ランキングの見出しがもと）。サイドバーに置いたショートコードの見出し（.sdb-h）もこの形にそろえる */
.sdb .sdb-side-rank-title,
aside .sdb .sdb-h, .ct-sidebar .sdb .sdb-h, .widget .sdb .sdb-h {
	font-size: 15px;
	line-height: 1.5;
	font-weight: 700;
	color: inherit;
	background: none;
	padding: 0 0 0.5em;
	margin: 0 0 1em;
	border: 0;
	border-bottom: 2px solid var(--sdb-main, #8224e3);
}
aside .sdb .sdb-h:not(:first-child), .ct-sidebar .sdb .sdb-h:not(:first-child), .widget .sdb .sdb-h:not(:first-child) { margin-top: 1.4em; }
/* 検索ボックス（サイドバー・トップ）：ボタンは黒の実行ボタンと同じ色（--sdb-solid）。枠も同じ色 */
body .sdb .sdb-home-search input[type="search"] { border: 2px solid var(--sdb-solid, #222); }
body .sdb .sdb-home-search button[type="submit"] { background: var(--sdb-solid, #222); color: #fff; border: 0; border-radius: 6px; font-weight: 700; cursor: pointer; transition: opacity 0.15s; }
body .sdb .sdb-home-search button[type="submit"]:hover, body .sdb .sdb-home-search button[type="submit"]:focus-visible { opacity: 0.85; }
.sdb ol.sdb-side-rank-list { list-style: none; margin: 0; padding: 0; }
.sdb ol.sdb-side-rank-list > li { display: flex; align-items: baseline; gap: 0.5em; margin: 0; padding: 0.45em 0; border-bottom: 1px dashed var(--sdb-line); list-style: none; line-height: 1.4; font-size: 0.92em; }
.sdb ol.sdb-side-rank-list > li::before { content: none; }
.sdb .sdb-side-rank-list .sdb-rank { flex: 0 0 auto; min-width: 1.5em; }
body .sdb .sdb-side-rank-list a { flex: 1 1 auto; min-width: 0; color: inherit; text-decoration: none; }
body .sdb .sdb-side-rank-list a:hover, body .sdb .sdb-side-rank-list a:focus { color: #2271b1; text-decoration: underline; }
.sdb .sdb-side-rank-list small { flex: 0 0 auto; white-space: nowrap; opacity: 0.7; }
.sdb p.sdb-side-rank-more { margin: 0.7em 0 0; font-size: 0.85em; text-align: right; }
/* 投稿フォームの送信ボタンと「キャンセル」ボタン（黒枠・黒文字）。色は黒い実行ボタンと同じ変数（--sdb-solid） */
.sdb .sdb-form-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.7em; }
body .sdb a.sdb-btn-cancel, body .sdb a.sdb-btn-line, body .sdb button.sdb-btn-line { appearance: none; font-family: inherit; margin: 0; display: inline-flex; align-items: center; box-sizing: border-box; padding: 0.65em 1.2em; border: 0; border-radius: 6px; background: #fff; box-shadow: inset 0 0 0 1px var(--sdb-solid, #222); color: var(--sdb-solid, #222); font-size: 0.95em; font-weight: 700; line-height: 1.3; text-decoration: none; cursor: pointer; transition: background-color 0.15s; }
body .sdb a.sdb-btn-cancel:hover, body .sdb a.sdb-btn-cancel:focus-visible, body .sdb a.sdb-btn-line:hover, body .sdb a.sdb-btn-line:focus-visible, body .sdb button.sdb-btn-line:hover, body .sdb button.sdb-btn-line:focus-visible { background: rgba(0, 0, 0, 0.06); color: var(--sdb-solid, #222); }
/* フェスまとめ：見出しの右端の「すべて開く／すべて閉じる」（押すたびに切り替わる）。矢印は「セトリを見る」と同じ丸い形 */
.sdb-ev-day > h2.sdb-h, .sdb h3.sdb-ev-stage { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4em 0.8em; }
.sdb .sdb-ev-head-text { flex: 1 1 auto; min-width: 0; }
body .sdb button.sdb-ev-grp { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 0.5em; appearance: none; margin: 0; padding: 0.3em 0.6em 0.3em 0.8em; border: 1px solid var(--sdb-btn, #1087ef); border-radius: var(--sdb-btn-radius, 4px); background: #fff; color: var(--sdb-btn, #1087ef); font-family: inherit; font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: 0; text-transform: none; cursor: pointer; transition: background-color 0.15s, color 0.15s; }
body .sdb button.sdb-ev-grp::after { content: "\203A"; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 1.5em; height: 1.5em; border-radius: 50%; background: var(--sdb-btn, #1087ef); color: #fff; font-size: 0.9em; font-weight: 700; line-height: 1; padding-bottom: 0.1em; box-sizing: border-box; transform: rotate(90deg); transition: transform 0.2s, background-color 0.15s, color 0.15s; }
body .sdb button.sdb-ev-grp.is-open::after { transform: rotate(-90deg); }
body .sdb button.sdb-ev-grp:hover, body .sdb button.sdb-ev-grp:focus-visible { background: var(--sdb-btn, #1087ef); color: #fff; }
body .sdb button.sdb-ev-grp:hover::after, body .sdb button.sdb-ev-grp:focus-visible::after { background: #fff; color: var(--sdb-btn, #1087ef); }
/* 日の見出し（紫の帯の中）：白枠・白文字、矢印は白丸 */
body .sdb .sdb-ev-day > h2.sdb-h button.sdb-ev-grp { background: transparent; border-color: #fff; color: #fff; }
body .sdb .sdb-ev-day > h2.sdb-h button.sdb-ev-grp::after { background: #fff; color: var(--sdb-main, #8224e3); }
body .sdb .sdb-ev-day > h2.sdb-h button.sdb-ev-grp:hover, body .sdb .sdb-ev-day > h2.sdb-h button.sdb-ev-grp:focus-visible { background: #fff; color: var(--sdb-main, #8224e3); }
body .sdb .sdb-ev-day > h2.sdb-h button.sdb-ev-grp:hover::after, body .sdb .sdb-ev-day > h2.sdb-h button.sdb-ev-grp:focus-visible::after { background: var(--sdb-main, #8224e3); color: #fff; }
/* 黒い「実行ボタン」：テーマが button の色（青など）を上書きしても黒を保つ。色を変えたいときは --sdb-solid を上書きする（YouTube・サブ・削除の色違いは除く） */
:root { --sdb-solid: #222; }
body .sdb .sdb-btn:not(.sdb-btn-yt):not(.sdb-btn-sub):not(.sdb-btn-danger) { background: var(--sdb-solid); color: #fff; }
.sdb-flow { margin: 0.8em 0 1.2em; padding: 0.8em 1em; border: 1px solid var(--sdb-line); border-left: 4px solid #7449c2; border-radius: 4px; background: #faf8fe; }
.sdb-flow-h { margin: 0 0 0.4em; font-weight: 800; }
.sdb-flow ul { margin: 0; padding-left: 1.2em; }
.sdb-flow li { margin: 0.35em 0; line-height: 1.7; }
.sdb-flow-note { margin: 0.5em 0 0; font-size: 0.85em; color: #646970; }
