/* ChessDB.cz – nový vzhled v2 · Série „100 legend šachové historie“ (Claude Design „ChessDB Serie“, 25. 10. 2026)
   Přehled /serie-sachistu/ a legenda /serie/<slug>/. Hlavička článku, text, box a okno podpory, štítky, sdílení
   a medailonek jsou z v2-blog.css (návrh je převzal z „ChessDB Clanky“), tady jen věci série. */

/* ── Přehled ── */
.v2s-main { max-width: 1248px; margin: 0 auto; padding: 56px 24px 80px; box-sizing: border-box; }
.v2s-top { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 48px; align-items: start; }
.v2s-h1 { margin: 0; font-size: 52px; line-height: 1.1; text-wrap: pretty; }
.v2s-lede { margin: 14px 0 0; max-width: 640px; font: 500 17px/1.6 var(--v2-man); color: var(--v2-t2); text-wrap: pretty; }
.v2s-facts { margin-top: 20px; display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; min-height: 36px; padding: 0 14px; border-radius: 999px; box-sizing: border-box; font: 600 13px var(--v2-man); color: var(--v2-t2); }
.v2s-facts i { font-style: normal; color: var(--v2-m2); }
.v2s-startrow { margin-top: 16px; }
.v2s-start { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: 999px; box-sizing: border-box; font: 800 14px var(--v2-man); color: var(--v2-t) !important; text-decoration: none !important; transition: border-color .14s ease; }
.v2s-start .v2i { font-size: 16px; color: var(--v2-acc); }
.v2s-start:hover { border-color: rgba(242,210,60,.45); }
.v2s-about { background: var(--v2-card); border: 1px solid var(--v2-b); border-radius: 18px; padding: 22px; }
.v2s-lbl { font: 800 12px var(--v2-man); letter-spacing: 1.2px; color: var(--v2-m); text-transform: uppercase; }
.v2s-about__au { margin-top: 12px; display: flex; align-items: center; gap: 12px; }
.v2s-about__au .v2b-av { width: 44px; height: 44px; font-size: 15px; }
.v2s-about__n { font: 700 15px var(--v2-man); color: var(--v2-t); }
.v2s-about__s { font: 600 12.5px var(--v2-man); color: var(--v2-m); }
.v2s-about p { margin: 12px 0 0; font: 500 14px/1.6 var(--v2-man); color: var(--v2-t2); text-wrap: pretty; }
.v2s-more { margin-top: 12px; display: inline-flex; align-items: center; gap: 2px; font: 700 14px var(--v2-man); color: var(--v2-acc) !important; text-decoration: none !important; }
.v2s-more .v2i { font-size: 16px; }
.v2s-more:hover { color: var(--v2-acc-h) !important; }

.v2s-podium { margin-top: 48px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.v2s-pod { position: relative; display: flex; flex-direction: column; background: var(--v2-card); border: 1px solid var(--v2-b); border-radius: 18px; overflow: hidden; color: var(--v2-t) !important; text-decoration: none !important; transition: border-color .14s ease; }
.v2s-pod:hover { border-color: rgba(242,210,60,.45); }
.v2s-pod__ph { position: relative; height: 260px; background: repeating-linear-gradient(45deg, #3A4A61 0 8px, #2A3648 8px 16px); }
.v2s-pod__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; display: block; }
.v2s-pod__ph::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 50%; background: linear-gradient(rgba(30,41,59,0), var(--v2-card)); pointer-events: none; }
.v2s-pod__r { position: absolute; left: 20px; bottom: 6px; z-index: 1; font: 600 64px/1 var(--v2-pop); color: var(--v2-acc); font-variant-numeric: tabular-nums; }
.v2s-pod__b { padding: 12px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.v2s-pod__n { font: 600 24px/1.25 var(--v2-pop); letter-spacing: -.01em; }
.v2s-pod__s { font: 500 14px/1.5 var(--v2-man); color: var(--v2-t2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v2s-pod__go { margin-top: auto; display: flex; align-items: center; gap: 2px; font: 700 14px var(--v2-man); color: var(--v2-acc); }
.v2s-pod__go .v2i { font-size: 16px; }

.v2s-sec { margin-top: 44px; display: flex; align-items: center; gap: 12px; }
.v2s-sec::after { content: ""; flex: 1; height: 1px; background: var(--v2-b); }
.v2s-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.v2s-card { min-width: 0; height: 104px; box-sizing: border-box; display: flex; align-items: center; gap: 14px; padding: 16px; background: var(--v2-card); border: 1px solid var(--v2-b); border-radius: 18px; color: var(--v2-t) !important; text-decoration: none !important; transition: border-color .14s ease; }
.v2s-card:hover { border-color: rgba(242,210,60,.45); }
.v2s-card__r { width: 52px; flex: none; font: 600 28px var(--v2-pop); color: var(--v2-m); font-variant-numeric: tabular-nums; transition: color .14s ease; }
.v2s-card:hover .v2s-card__r, .v2s-card:focus-visible .v2s-card__r { color: var(--v2-acc); }
.v2s-thumb { width: 72px; height: 72px; flex: none; border-radius: 12px; overflow: hidden; background: #16202F; display: flex; align-items: center; justify-content: center; font: 600 18px var(--v2-pop); color: var(--v2-m); }
.v2s-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; display: block; }
.v2s-thumb.is-none { background: repeating-linear-gradient(45deg, #2A3648 0 6px, #253042 6px 12px); }
.v2s-card__t { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.v2s-card__n { font: 600 17px var(--v2-pop); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2s-card__s { font: 500 13px var(--v2-man); color: var(--v2-m); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Legenda ── */
.v2s-art { max-width: 1248px; margin: 0 auto; padding: 32px 24px 80px; box-sizing: border-box; }
.v2s-bar { display: flex; align-items: center; gap: 10px; }
.v2s-bar .v2b-back { margin-right: auto; }
.v2s-bar .v2-circ .v2i { font-size: 19px; }
.v2s-art .v2b-head { margin-top: 28px; }
.v2s-rank { height: 26px; padding: 0 10px; border-radius: 8px; background: rgba(242,210,60,.12); color: var(--v2-acc); font: 600 12.5px var(--v2-pop); display: inline-flex; align-items: center; white-space: nowrap; }
.v2s-rank.is-intro { font: 800 12px var(--v2-man); letter-spacing: 1.2px; text-transform: uppercase; }
.v2s-introt { font-size: 36px; line-height: 1.2; }
a.v2b-tag { text-decoration: none !important; transition: color .14s ease, border-color .14s ease; }
a.v2b-tag:hover { color: var(--v2-acc) !important; border-color: rgba(242,210,60,.45); }
.v2s-hero { margin-top: 32px; display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 24px; align-items: start; }
.v2s-photo { position: relative; width: 360px; height: 450px; border-radius: 18px; overflow: hidden; background: #16202F; }
.v2s-photo::before { content: ""; position: absolute; inset: -20px; background: var(--ph) center / cover no-repeat; filter: blur(14px) brightness(.55); }
.v2s-photo img { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); max-width: 100%; max-height: 100%; object-fit: contain; display: block; border-radius: 6px; }
.v2s-photo.is-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; border-radius: 0; }
.v2s-photo.is-none { background: repeating-linear-gradient(45deg, #3A4A61 0 10px, #2A3648 10px 20px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.v2s-photo.is-none::before { display: none; }
.v2s-photo.is-none b { font: 600 56px/1 var(--v2-pop); color: var(--v2-t2); }
.v2s-photo.is-none span { font: 600 18px var(--v2-pop); color: var(--v2-acc); }
.v2s-kostka { background: var(--v2-card); border: 1px solid var(--v2-b); border-radius: 18px; padding: 24px; }
.v2s-kostka__main { margin-top: 12px; display: flex; gap: 10px; align-items: flex-start; font: 600 18px/1.45 var(--v2-pop); color: var(--v2-t); text-wrap: pretty; }
.v2s-kostka__main .v2i { font-size: 20px; color: var(--v2-acc); margin-top: 3px; }
.v2s-kostka__rows { margin-top: 16px; display: flex; flex-direction: column; }
.v2s-kr { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.06); }
.v2s-kr__l { font: 800 12px/1.4 var(--v2-man); letter-spacing: 1.2px; color: var(--v2-m); text-transform: uppercase; }
.v2s-kr__v { font: 500 15px/1.5 var(--v2-man); color: var(--v2-t); text-wrap: pretty; overflow-wrap: anywhere; }
.v2s-kr__v b { font-weight: 700; }
.v2s-kr__big { font: 600 22px var(--v2-pop); font-variant-numeric: tabular-nums; }
.v2s-kr__sub { display: block; margin-top: 6px; padding-left: 12px; border-left: 2px solid rgba(255,255,255,.1); font: 500 14px/1.5 var(--v2-man); color: var(--v2-t2); }
.v2s-kr.is-plain { grid-template-columns: minmax(0, 1fr); }

/* text legendy: písmo jako v Článcích, sekce bez dvojtečky */
.v2s-art .v2b-body { margin-top: 44px; }
.v2s-art .v2b-body.v2s-after { margin-top: 0; }
.v2s-art .v2b-prose > h2:first-child { margin-top: 0; }

/* ── Nejlepší partie ── */
.v2s-game { width: 960px; max-width: 100%; box-sizing: border-box; margin: 48px auto 0; background: var(--v2-card); border: 1px solid var(--v2-b); border-radius: 18px; padding: 24px; color: var(--v2-t); }
.v2s-game__h { min-width: 0; }
.v2s-game__t { margin: 6px 0 0; font: 600 22px/1.3 var(--v2-pop); letter-spacing: -.01em; }
.v2s-game__t .is-leg { color: var(--v2-acc); }
.v2s-game__t i { font-style: normal; color: var(--v2-m2); }
.v2s-game__m { margin-top: 4px; font: 600 13.5px var(--v2-man); color: var(--v2-m); }
.v2s-game__b { margin-top: 18px; display: flex; gap: 24px; align-items: flex-start; }
.v2s-game__l { width: 440px; flex: none; }
.v2s-pl { height: 36px; display: flex; align-items: center; gap: 8px; font: 700 14px var(--v2-man); color: var(--v2-t); }
.v2s-pl .is-leg { color: var(--v2-acc); }
.v2s-sq { width: 10px; height: 10px; border-radius: 3px; box-sizing: border-box; border: 1px solid rgba(255,255,255,.35); flex: none; }
.v2s-sq.is-w { background: var(--v2-t); }
.v2s-sq.is-b { background: var(--v2-navy); }
.v2s-board { position: relative; width: 440px; height: 440px; display: grid; grid-template-columns: repeat(8, 1fr); grid-template-rows: repeat(8, 1fr); border-radius: 8px; overflow: hidden; user-select: none; -webkit-user-select: none; background: rgba(255,255,255,.1); }
.v2s-board > div { position: relative; }
.v2s-board > .l { background: var(--cdb-sq-light, #F1D23D); }
.v2s-board > .d { background: var(--cdb-sq-dark, #BBC6D4); }
.v2s-board > .hl { box-shadow: inset 0 0 0 2px rgba(17,25,39,.7), inset 0 0 0 4px var(--v2-acc); }   /* poslední tah jako v Přehrávači v2 */
.v2s-board > .hl::before { content: ""; position: absolute; inset: 0; background: rgba(242,210,60,.18); }
.v2s-board img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; z-index: 1; }
.v2s-board i { position: absolute; z-index: 2; font: 800 10px var(--v2-man); font-style: normal; line-height: 1; pointer-events: none; }
.v2s-board .cr { left: 3px; top: 3px; }
.v2s-board .cf { right: 3px; bottom: 2px; }
.v2s-board > .l > i { color: var(--cdb-sq-dark, #8B949E); }
.v2s-board > .d > i { color: var(--cdb-sq-light, #F2D23D); }
.v2s-ctl { margin-top: 6px; display: flex; align-items: center; gap: 8px; }
.v2s-ctl .v2-circ { color: var(--v2-t); }
.v2s-ctl .v2-circ .v2i { font-size: 20px; }
.v2s-ctl [data-v2s-act="start"], .v2s-ctl [data-v2s-act="end"] { color: var(--v2-t2); }
.v2s-ctl [data-v2s-act="start"] .v2i, .v2s-ctl [data-v2s-act="end"] .v2i, .v2s-ctl [data-v2s-act="flip"] .v2i, .v2s-ctl [data-v2s-act="sound"] .v2i { font-size: 18px; }
.v2s-ctl [data-v2s-act="flip"] { margin-left: auto; color: var(--v2-t2); }
.v2s-ctl [data-v2s-act="sound"] { color: var(--v2-t2); }
.v2s-ctl .v2-circ.is-on { color: var(--v2-acc); border-color: rgba(242,210,60,.5); }
.v2s-play { width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--v2-acc); color: var(--v2-on); box-shadow: 0 6px 14px rgba(242,210,60,.28); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none; transition: background .14s ease, transform .1s ease; }
.v2s-play .v2i { font-size: 20px; }
.v2s-play:hover { background: var(--v2-acc-h); }
.v2s-play:active { transform: scale(.96); }
.v2s-keys { margin-top: 8px; font: 600 11.5px var(--v2-man); color: var(--v2-m2); }
.v2s-notes { flex: 1; min-width: 0; height: 440px; margin-top: 36px; background: var(--v2-bg); border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; }
.v2s-notes__h { flex: none; height: 38px; padding: 0 14px; display: flex; align-items: center; font: 800 12px var(--v2-man); letter-spacing: 1.2px; color: var(--v2-m); }
.v2s-notes__h span { margin-left: auto; letter-spacing: 0; font: 600 12px var(--v2-man); color: var(--v2-m2); }
.v2s-list { position: relative; flex: 1; overflow-y: auto; padding: 0 8px 10px; scrollbar-width: thin; scrollbar-color: #334155 transparent; }
.v2s-row { display: grid; grid-template-columns: 40px 1fr 1fr; align-items: center; height: 32px; font: 500 14px var(--v2-pop); font-variant-numeric: tabular-nums; }
.v2s-row__n { padding-left: 6px; color: var(--v2-m2); font-weight: 400; }
.v2s-mv { justify-self: start; height: 26px; padding: 0 9px; border-radius: 999px; border: 0; background: transparent; color: var(--v2-t); font: 500 14px 'Noto Sans Symbols 2', var(--v2-pop); display: inline-flex; align-items: center; cursor: pointer; white-space: nowrap; }
.v2s-mv.is-b { color: var(--v2-m); }
.v2s-mv:hover { outline: 1px solid rgba(242,210,60,.45); outline-offset: 1px; }
.v2s-mv.is-on { background: var(--v2-acc); color: var(--v2-on); }
.v2s-res { padding: 8px 6px; }
.v2s-res span { height: 26px; padding: 0 10px; border-radius: 999px; background: var(--v2-card); color: var(--v2-t2); font: 600 13px var(--v2-pop); display: inline-flex; align-items: center; }
.v2s-res span.is-on { background: var(--v2-acc); color: var(--v2-on); }
/* načítání: kostra desky a zápisu */
.v2s-game.is-loading .v2s-board { background: rgba(255,255,255,.1); }
.v2s-game.is-loading .v2s-board > *, .v2s-game.is-loading .v2s-ctl { visibility: hidden; }
.v2s-game.is-loading .v2s-list { background: repeating-linear-gradient(transparent 0 6px, rgba(255,255,255,.08) 6px 20px, transparent 20px 32px); background-clip: content-box; }
.v2s-game.is-loading .v2s-board, .v2s-game.is-loading .v2s-list { animation: v2sPulse 1.4s ease-in-out infinite; }
@keyframes v2sPulse { 50% { opacity: .55; } }
/* chyba: místo desky pruh a zápis tahů textem */
.v2s-game__err { display: none; }
.v2s-game.is-error .v2s-game__b { display: none; }
.v2s-game.is-error .v2s-game__err { display: block; }
.v2s-strip { margin-top: 18px; border-radius: 12px; padding: 10px 12px; display: flex; gap: 10px; align-items: center; font: 600 12.5px/1.5 var(--v2-man); color: var(--v2-t); background: rgba(248,113,113,.12); }
.v2s-strip > .v2i { font-size: 16px; color: var(--v2-loss); flex: none; }
.v2s-strip.is-admin { margin-top: 8px; background: rgba(251,191,36,.12); }
.v2s-strip.is-admin > .v2i { color: var(--v2-warn); }
.v2s-strip.is-admin b { margin-left: auto; font: 800 11px var(--v2-man); letter-spacing: 1.2px; color: var(--v2-warn); white-space: nowrap; }
.v2s-moves { margin-top: 12px; background: var(--v2-bg); border-radius: 12px; padding: 12px 14px; }
.v2s-moves__t { border: 0; background: none; padding: 0; color: var(--v2-t); font: 800 14px var(--v2-man); display: flex; align-items: center; gap: 6px; cursor: pointer; }
.v2s-moves__t .v2i { font-size: 16px; transition: transform .15s ease; }
.v2s-moves__t[aria-expanded="false"] .v2i { transform: rotate(-90deg); }
.v2s-moves p { margin: 8px 0 0; font: 500 14px/1.7 'Noto Sans Symbols 2', var(--v2-pop); color: var(--v2-t2); overflow-wrap: anywhere; }
.v2s-moves p[hidden] { display: none; }

/* ── Díly série ── */
.v2s-parts__l { margin-top: 28px; }
.v2s-parts { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.v2s-part { background: var(--v2-card); border: 1px solid var(--v2-b); border-radius: 18px; padding: 14px; display: flex; align-items: center; gap: 12px; color: var(--v2-t) !important; text-decoration: none !important; min-width: 0; transition: border-color .14s ease; }
a.v2s-part:hover { border-color: rgba(242,210,60,.45); }
.v2s-part.is-next { flex-direction: row-reverse; text-align: right; }
.v2s-part .v2s-thumb { width: 56px; height: 56px; font-size: 14px; }
.v2s-part .v2s-thumb.is-ic { background: rgba(242,210,60,.12); color: var(--v2-acc); }
.v2s-part .v2s-thumb.is-ic .v2i { font-size: 22px; }
.v2s-part__t { min-width: 0; flex: 1; }
.v2s-part__k { display: block; font: 800 11.5px var(--v2-man); letter-spacing: 1.2px; color: var(--v2-m); text-transform: uppercase; }
.v2s-part__n { display: block; margin-top: 2px; font: 600 16px var(--v2-pop); color: var(--v2-t); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2s-part__n b { font-weight: 600; color: var(--v2-acc); }
.v2s-part__x { display: block; margin-top: 2px; font: 700 13px var(--v2-man); color: var(--v2-acc); }
.v2s-part.is-end { background: transparent; border-style: dashed; border-color: rgba(255,255,255,.12); }
.v2s-part.is-end .v2s-part__n { white-space: normal; }
.v2s-part.is-empty { visibility: hidden; }
.v2s-all { margin-top: 14px; text-align: center; }
.v2s-all a { font: 700 14px var(--v2-man); color: var(--v2-acc) !important; text-decoration: none !important; }
.v2s-all a:hover { color: var(--v2-acc-h) !important; }

/* ── Úvod série ── */
.v2s-intro { margin-top: 32px; display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
.v2s-intro__ph { width: 240px; height: 300px; border-radius: 18px; overflow: hidden; background: repeating-linear-gradient(45deg, #3A4A61 0 10px, #2A3648 10px 20px); }
.v2s-intro__ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v2s-intro .v2b-prose > p:first-child { margin-top: 0; }
.v2s-intro__next { margin: 32px 0 0 auto; width: 360px; max-width: 100%; }

/* ── Legendu jsme nenašli ── */
.v2s-nf { max-width: 480px; margin: 72px auto 0; background: var(--v2-card); border: 1px solid var(--v2-b); border-radius: 18px; padding: 36px 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.v2s-nf > .v2i { font-size: 34px; color: #475569; }
.v2s-nf b { font: 700 16px var(--v2-man); color: var(--v2-t); }
.v2s-nf span { font: 500 14px var(--v2-man); color: var(--v2-m); }
.v2s-nf a { margin-top: 4px; height: 44px; padding: 0 18px; border-radius: 999px; background: var(--v2-acc); color: var(--v2-on) !important; font: 800 14px var(--v2-man); display: inline-flex; align-items: center; gap: 6px; text-decoration: none !important; }
.v2s-nf a .v2i { font-size: 15px; }
.v2s-nf a:hover { background: var(--v2-acc-h); }

/* užší okna (nový vzhled je jen pro počítač) */
@media (max-width: 1180px) {
  .v2s-top { grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; }
  .v2s-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2s-game__b { flex-direction: column; }
  .v2s-notes { width: 100%; margin-top: 16px; flex: none; height: 360px; }
}
@media (max-width: 900px) {
  .v2s-top, .v2s-hero, .v2s-intro { grid-template-columns: 1fr; }
  .v2s-podium { grid-template-columns: 1fr; }
  .v2s-photo { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .v2s-game.is-loading .v2s-board, .v2s-game.is-loading .v2s-list { animation: none; } }

/* ══ Mobil (Claude Design „ChessDB Serie mobil“, 26. 10. 2026) ══════════════════════════════════════════════
   Jen mobilní vykreslení (wp_is_mobile → <html class="cdb-v2 v2s-m">, serie-v2.php), na počítači se nic nemění.
   Lišta a menu jsou sdílené (cdb_v2_header 'menu' / 'mleft' / 'mright', v2-mnav.css); článek přebírá v2-blog.css
   a tady se jen zmenšuje. Doplňující CSS šablony dává do 768 px html i body overflow-x: hidden → body by se stalo
   posuvným kontejnerem a lišta by přestala být sticky. Proto html visible (body pak přejde na okno) a zámek posouvání
   (menu, spodní list) přes body: html hidden by z body zase udělalo posuvný kontejner a lišta by uskočila. */
.v2s-line, .v2s-allmv, .v2s-sheet__h, .v2s-sheet-bg { display: none; }   /* jen mobil do 760 px */
html.cdb-v2.v2s-m { overflow: visible; }
html.cdb-v2.v2s-m.v2-mnav-open body, html.cdb-v2.v2s-m.v2s-lock body { overflow: hidden; }

@media (max-width: 760px) {
  /* lišta legendy a neznámé adresy: Zpět + šipky dílů, bez tlačítek účtu (účet je v menu) */
  .v2-serie-h .v2-login, .v2-serie-h .v2-reg, .v2-serie-h .v2-avatar-btn { display: none; }

  /* ── Přehled (2a) ── */
  html.v2s-m .v2s-main { padding: 24px 20px 40px; }
  html.v2s-m .v2s-top { display: block; }
  html.v2s-m .v2s-h1 { font-size: 34px; line-height: 1.15; }
  html.v2s-m .v2s-lede { margin-top: 10px; font-size: 15px; line-height: 1.55; }
  html.v2s-m .v2s-facts { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px; min-height: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  html.v2s-m .v2s-facts span { height: 28px; padding: 0 10px; box-sizing: border-box; border-radius: 999px; background: rgba(30,41,59,.55); border: 1px solid rgba(255,255,255,.12); font: 600 12px var(--v2-man); color: var(--v2-t2); display: inline-flex; align-items: center; white-space: nowrap; }
  html.v2s-m .v2s-facts i { display: none; }
  html.v2s-m .v2s-startrow { margin-top: 14px; }
  html.v2s-m .v2s-start { display: flex; width: 100%; height: 48px; justify-content: center; padding: 0 16px; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-about { margin-top: 16px; padding: 16px; }
  html.v2s-m .v2s-about__au { margin-top: 8px; gap: 10px; }
  html.v2s-m .v2s-about__au .v2b-av { width: 36px; height: 36px; font-size: 13px; }
  html.v2s-m .v2s-about__n { font-size: 14px; }
  html.v2s-m .v2s-about__s { font-size: 12px; }
  html.v2s-m .v2s-about p { margin-top: 10px; font-size: 13.5px; line-height: 1.55; }
  html.v2s-m .v2s-more { margin-top: 8px; }
  /* stupně vítězů: vodorovný posuvník, karta 260 px, třetí vykukuje */
  html.v2s-m .v2s-podium { margin: 28px -20px 0; padding: 0 20px; display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding: 0 20px; scrollbar-width: none; }
  html.v2s-m .v2s-podium::-webkit-scrollbar { display: none; }
  html.v2s-m .v2s-podium::after { content: ""; flex: 0 0 8px; }   /* pravý okraj posuvníku (padding na konci flexu Safari nepočítá) */
  html.v2s-m .v2s-pod { width: 260px; flex: none; scroll-snap-align: start; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-pod__ph { height: 180px; }
  html.v2s-m .v2s-pod__r { left: 14px; bottom: 4px; font-size: 48px; }
  html.v2s-m .v2s-pod__b { padding: 8px 14px 14px; gap: 4px; }
  html.v2s-m .v2s-pod__n { font-size: 19px; line-height: 1.3; }
  html.v2s-m .v2s-pod__s { font-size: 13px; line-height: 1.45; }
  html.v2s-m .v2s-pod__go { display: none; }
  html.v2s-m .v2s-sec { margin-top: 28px; }
  html.v2s-m .v2s-sec::after { display: none; }
  html.v2s-m .v2s-grid { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
  html.v2s-m .v2s-card { height: auto; padding: 12px; gap: 12px; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-card__r { width: 52px; font-size: 19px; }
  html.v2s-m .v2s-card .v2s-thumb { width: 56px; height: 56px; font-size: 15px; }
  html.v2s-m .v2s-card__t { gap: 2px; }
  html.v2s-m .v2s-card__n { font-size: 16px; }
  html.v2s-m .v2s-card__s { font-size: 12.5px; }

  /* ── Legenda (2b) a úvod série (2d) ── */
  html.v2s-m .v2s-art { padding: 20px 20px 40px; }
  html.v2s-m .v2s-bar { display: none; }   /* Zpět a díly jsou v liště */
  html.v2s-m .v2s-art .v2b-head { margin: 0; max-width: none; }
  html.v2s-m .v2b-date { font-size: 12.5px; }
  html.v2s-m .v2b-title { margin-top: 10px; font-size: 40px; line-height: 1.15; }
  html.v2s-m .v2b-title.v2s-introt { font-size: 28px; }
  html.v2s-m .v2b-by { margin-top: 14px; gap: 10px; }
  html.v2s-m .v2b-by .v2b-av { width: 36px; height: 36px; font-size: 13px; }
  html.v2s-m .v2b-by__n { font-size: 14px; }
  html.v2s-m .v2b-by__s { font-size: 12px; }
  html.v2s-m .v2b-by__acts [data-v2b-copy] { display: none; }   /* nahoře jen Sdílet, kopírování je dole u štítku */
  /* fotka v rámu přes celou šířku (100vw): výška podle poměru fotky --r (240–420 px), fotku zmenší max-width (cdb_serie_mphoto) */
  html.v2s-m .v2s-hero { margin-top: 18px; display: block; }
  html.v2s-m .v2s-photo { width: auto; height: clamp(240px, calc(100vw * var(--r, 1.25)), 420px); margin: 0 -20px; border-radius: 0; }
  html.v2s-m .v2s-photo.is-intro { margin-top: 18px; height: 260px; }
  html.v2s-m .v2s-photo.is-none { height: 300px; }
  html.v2s-m .v2s-kostka { margin-top: 16px; padding: 16px; }
  html.v2s-m .v2s-kostka__main { margin-top: 10px; gap: 8px; font-size: 16px; }
  html.v2s-m .v2s-kostka__main .v2i { font-size: 18px; margin-top: 2px; }
  html.v2s-m .v2s-kostka__rows { margin-top: 0; }
  html.v2s-m .v2s-kr { display: block; margin-top: 10px; padding: 10px 0 0; }
  html.v2s-m .v2s-kr__l { display: block; font-size: 11.5px; }
  html.v2s-m .v2s-kr__v { display: block; margin-top: 2px; font-size: 14.5px; }
  html.v2s-m .v2s-kr__big { font-size: 20px; }
  html.v2s-m .v2s-kr__sub { margin-top: 4px; padding-left: 10px; font-size: 13.5px; }
  /* text: písmo z Článků, menší */
  html.v2s-m .v2s-art .v2b-body { margin: 0; max-width: none; }
  html.v2s-m .v2b-prose { overflow-wrap: anywhere; }   /* adresy zdrojů v úvodu série jako text odkazu */
  html.v2s-m .v2b-prose p, html.v2s-m .v2b-prose ul, html.v2s-m .v2b-prose ol { margin-top: 12px; font-size: 16px; line-height: 1.7; }
  html.v2s-m .v2b-prose ul, html.v2s-m .v2b-prose ol { padding-left: 22px; }
  html.v2s-m .v2b-prose > p:first-child { margin-top: 12px; }
  html.v2s-m .v2s-art .v2b-body:not(.v2s-ibody) .v2b-prose > p:first-child { margin-top: 20px; }
  html.v2s-m .v2b-prose h2, html.v2s-m .v2s-art .v2b-prose > h2:first-child { margin-top: 28px; font-size: 22px; line-height: 1.3; }
  html.v2s-m .v2b-prose figure { margin-top: 20px; }
  html.v2s-m .v2b-prose blockquote { margin-top: 18px; padding: 12px 14px; }
  html.v2s-m .v2b-prose blockquote p { font-size: 16px; }
  html.v2s-m .v2b-hrow { margin-top: 28px; }

  /* ── Nejlepší partie: karta přes celou šířku, deska 358 px (390), řádek tahů, celý zápis ve spodním listu ── */
  html.v2s-m .v2s-game { width: auto; max-width: none; margin: 20px -20px 0; border-radius: 0; border-width: 1px 0; padding: 16px 16px 18px; }
  html.v2s-m .v2s-game__t { margin-top: 4px; font-size: 18px; }
  html.v2s-m .v2s-game__m { margin-top: 0; font-size: 12.5px; }
  html.v2s-m .v2s-game__b { margin-top: 10px; display: block; }
  html.v2s-m .v2s-game__l { width: auto; }
  html.v2s-m .v2s-pl { height: 28px; gap: 6px; font-size: 13px; }
  html.v2s-m .v2s-sq { width: 9px; height: 9px; }
  html.v2s-m .v2s-board { width: 100%; height: auto; aspect-ratio: 1 / 1; }
  html.v2s-m .v2s-ctl { margin-top: 6px; justify-content: center; gap: 6px; }
  html.v2s-m .v2s-ctl .v2-circ, html.v2s-m .v2s-play { -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-ctl [data-v2s-act="prev"], html.v2s-m .v2s-ctl [data-v2s-act="next"] { width: 44px; height: 44px; }
  html.v2s-m .v2s-ctl [data-v2s-act="flip"] { margin-left: 0; }
  html.v2s-m .v2s-ctl [data-v2s-act="sound"], html.v2s-m .v2s-keys { display: none; }
  html.v2s-m .v2s-play { width: 52px; height: 52px; }
  html.v2s-m .v2s-line { position: relative; margin-top: 10px; height: 30px; display: flex; align-items: center; gap: 4px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: none; white-space: nowrap; font: 500 13.5px var(--v2-pop); }
  html.v2s-m .v2s-line::-webkit-scrollbar { display: none; }
  html.v2s-m .v2s-line__n { flex: none; color: var(--v2-m2); font-variant-numeric: tabular-nums; }
  html.v2s-m .v2s-line__n:not(:first-child) { margin-left: 6px; }
  html.v2s-m .v2s-line .v2s-mv { flex: none; height: 26px; padding: 0 3px; font-size: 13.5px; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-line .v2s-mv.is-on { padding: 0 8px; }
  html.v2s-m .v2s-line__res { flex: none; margin-left: 6px; height: 24px; padding: 0 9px; border-radius: 999px; background: var(--v2-bg); color: var(--v2-t2); font: 600 12.5px var(--v2-pop); display: inline-flex; align-items: center; }
  html.v2s-m .v2s-line__res.is-on { background: var(--v2-acc); color: var(--v2-on); }
  html.v2s-m .v2s-allmv { margin-top: 8px; width: 100%; height: 44px; padding: 0; box-sizing: border-box; border-radius: 13px; background: var(--v2-bg); border: 1px solid var(--v2-b2); color: var(--v2-t); font: 800 13.5px var(--v2-man); display: flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: border-color .14s ease, transform .1s ease; }
  html.v2s-m .v2s-allmv .v2i { font-size: 15px; }
  html.v2s-m .v2s-allmv:active { transform: scale(.98); }
  html.v2s-m .v2s-game.is-loading .v2s-line, html.v2s-m .v2s-game.is-loading .v2s-allmv { visibility: hidden; }
  /* spodní list se zápisem (.v2s-notes) */
  html.v2s-m .v2s-sheet-bg { display: block; position: fixed; inset: 0; z-index: 9990; background: rgba(15,23,42,.75); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); touch-action: none; cursor: pointer; opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility 0s linear .2s; }
  html.v2s-m .v2s-sheet-bg.is-open { opacity: 1; visibility: visible; transition: opacity .2s ease, visibility 0s; }
  html.v2s-m .v2s-notes { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9991; width: auto; height: auto; max-height: 78vh; max-height: 78dvh; margin: 0; flex: none; box-sizing: border-box; padding: 0 0 env(safe-area-inset-bottom, 0px); background: var(--v2-card); border-top: 1px solid var(--v2-b); border-radius: 28px 28px 0 0; box-shadow: 0 -20px 60px rgba(2,6,23,.6); transform: translateY(105%); visibility: hidden; transition: transform .24s ease, visibility 0s linear .24s; }
  html.v2s-m .v2s-notes.is-open { transform: none; visibility: visible; transition: transform .24s ease, visibility 0s; }
  html.v2s-m .v2s-sheet__h { flex: none; position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 22px 16px 10px 20px; }
  html.v2s-m .v2s-sheet__grip { position: absolute; left: 50%; top: 8px; width: 40px; height: 5px; margin-left: -20px; border-radius: 999px; background: rgba(255,255,255,.3); }
  html.v2s-m .v2s-sheet__tt { flex: 1; min-width: 0; padding-top: 2px; }
  html.v2s-m .v2s-sheet__t { font: 600 20px/1.3 var(--v2-pop); color: var(--v2-t); }
  html.v2s-m .v2s-sheet__s { margin-top: 2px; font: 600 12.5px var(--v2-man); color: var(--v2-m); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.v2s-m .v2s-sheet__h .v2-circ { color: var(--v2-t); }
  html.v2s-m .v2s-notes__h { display: none; }
  html.v2s-m .v2s-list { flex: 1 1 auto; min-height: 0; padding: 0 12px 12px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  html.v2s-m .v2s-row { grid-template-columns: 44px 1fr 1fr; height: 40px; font-size: 15px; }
  html.v2s-m .v2s-mv { height: 32px; padding: 0 10px; font-size: 15px; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-res span { height: 30px; font-size: 14px; }
  /* chyba zápisu: pruh a sbalený zápis tahů (šipka dolů = rozbalit) */
  html.v2s-m .v2s-strip { margin-top: 12px; gap: 8px; }
  html.v2s-m .v2s-strip > .v2i { font-size: 15px; }
  html.v2s-m .v2s-moves { margin-top: 8px; padding: 10px 12px; }
  html.v2s-m .v2s-moves__t { width: 100%; font-size: 13.5px; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-moves__t .v2i { font-size: 15px; }
  html.v2s-m .v2s-moves__t[aria-expanded="false"] .v2i { transform: none; }
  html.v2s-m .v2s-moves__t[aria-expanded="true"] .v2i { transform: rotate(180deg); }
  html.v2s-m .v2s-moves p { font-size: 13.5px; }

  /* ── Konec článku: podpis, podpora, sdílení, medailonek, díly ── */
  html.v2s-m .v2s-art .v2b-body.v2s-after { margin: 0; }
  html.v2s-m .v2b-sign { margin-top: 24px; font-size: 15px; }
  html.v2s-m .v2b-supbox { display: block; margin-top: 20px; padding: 16px; }
  html.v2s-m .v2b-supbox__h { font-size: 17px; }
  html.v2s-m .v2b-supbox__h .v2i { font-size: 18px; }
  html.v2s-m .v2b-supbox p { margin-top: 6px; font-size: 14px; }
  html.v2s-m .v2b-supbtn { margin-top: 12px; height: 48px; box-shadow: none; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2b-note { margin-top: 6px; }
  html.v2s-m .v2b-tags { margin-top: 16px; gap: 8px; flex-wrap: nowrap; }
  html.v2s-m .v2b-tag { font-size: 12.5px; white-space: nowrap; }
  html.v2s-m .v2b-tags__s { display: none; }
  html.v2s-m .v2b-tags [data-v2b-copy] { margin-left: auto; }
  html.v2s-m .v2-circ.v2b-ic--sm { width: 40px; height: 40px; font-size: 16px; }
  html.v2s-m .v2b-authbox { margin-top: 16px; padding: 16px; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 0 12px; align-items: center; }
  html.v2s-m .v2b-authbox > .v2b-av { grid-row: 1 / span 2; width: 48px; height: 48px; font-size: 16px; }
  html.v2s-m .v2b-authbox > div { display: contents; }
  html.v2s-m .v2b-authbox__l { grid-column: 2; align-self: end; font-size: 11.5px; }
  html.v2s-m .v2b-authbox__n { grid-column: 2; align-self: start; font-size: 17px; }
  html.v2s-m .v2b-authbox p { grid-column: 1 / -1; margin-top: 10px; font-size: 13.5px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  html.v2s-m .v2s-parts__l { margin-top: 24px; }
  html.v2s-m .v2s-parts { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
  html.v2s-m .v2s-part { padding: 12px; -webkit-tap-highlight-color: transparent; }
  html.v2s-m .v2s-part.is-next { flex-direction: row; text-align: left; }
  html.v2s-m .v2s-part.is-empty { display: none; }
  html.v2s-m .v2s-part .v2s-thumb { width: 48px; height: 48px; }
  html.v2s-m .v2s-part__k { font-size: 11px; }
  html.v2s-m .v2s-part__n { font-size: 15px; }
  html.v2s-m .v2s-part__n b { color: inherit; }
  html.v2s-m .v2s-all { margin-top: 12px; }
  html.v2s-m .v2s-intro__next { display: none; }

  /* ── Legendu jsme nenašli (2e) ── */
  html.v2s-m .v2s-nf { margin: 16px 0 0; max-width: none; padding: 32px 20px; }
  html.v2s-m .v2s-nf a { height: 48px; padding: 0 20px; }

  /* ── Okno „Podpoř autora“ jako spodní list, patička pod sebou, hláška nad spodním okrajem ── */
  html.v2s-m .v2b-sup { align-items: flex-end; padding: 0; }
  html.v2s-m .v2b-sup__box { width: 100%; max-height: 92vh; max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain; border-width: 1px 0 0; border-radius: 28px 28px 0 0; padding: 24px 20px calc(24px + env(safe-area-inset-bottom, 0px)); }
  html.v2s-m .v2b-sup__who h2 { font-size: 24px; }
  html.v2s-m .v2b-msg { font-size: 16px; }   /* iOS by při menším písmu stránku přiblížil */
  html.v2s-m .v2b-toast { bottom: calc(20px + env(safe-area-inset-bottom, 0px)); max-width: calc(100% - 32px); box-sizing: border-box; }
  html.v2s-m .v2-footer__in { grid-template-columns: 1fr; padding: 28px 20px; gap: 14px; }
  html.v2s-m .v2-footer__col { flex-direction: row; flex-wrap: wrap; gap: 6px 14px; }
  html.v2s-m .v2-footer__col--r { align-items: flex-start; text-align: left; }
}
@media (max-width: 760px) and (hover: hover) {
  html.v2s-m .v2s-allmv:hover { border-color: rgba(242,210,60,.45); }
}
@media (max-width: 760px) and (hover: none) {   /* iOS drží :hover po klepnutí – ovládání partie by svítilo žlutě */
  html.v2s-m .v2s-ctl .v2-circ:hover { color: var(--v2-t); border-color: rgba(255,255,255,.12); }
  html.v2s-m .v2s-ctl [data-v2s-act="start"]:hover, html.v2s-m .v2s-ctl [data-v2s-act="end"]:hover, html.v2s-m .v2s-ctl [data-v2s-act="flip"]:hover { color: var(--v2-t2); }
  html.v2s-m .v2s-ctl .v2-circ.is-on:hover { color: var(--v2-acc); border-color: rgba(242,210,60,.5); }
  html.v2s-m .v2s-play:hover { background: var(--v2-acc); }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  html.v2s-m .v2s-notes, html.v2s-m .v2s-notes.is-open, html.v2s-m .v2s-sheet-bg, html.v2s-m .v2s-sheet-bg.is-open { transition: none; }
}
