/* Review layout; shared primitives are in chess-ui.css. */
.review-flow { display:grid; gap:var(--space-3); min-width:0; }
.review-flow-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-3); }
.review-flow-heading > div { min-width:0; }
.review-flow-heading h1 { font-size:var(--text-heading); line-height:1.35; margin:0; overflow-wrap:anywhere; }
.review-flow-heading > button { flex-shrink:0; max-width:45%; font-size:var(--text-meta); }
.review-moments { display:grid; gap:var(--space-2); }
.review-moments .ui-button { text-align:left; }
.review-moments span { display:block; font-weight:400; font-size:var(--text-meta); color:var(--muted); margin-top:var(--space-2); }
.training-next { margin-bottom:var(--space-6); }
/* The shared board stays in place; each review step owns only its content. */
.review-flow-active :is(.workspace-heading,#workspaceStatus,#openGameReview,#focusBtn,#historyNotice,#currentMove,#archiveContext,#reviewGuide,#cameraReviewProgress,.sidebar > .actions,.sidebar > .status,#endCard) { display:none!important; }
.review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="summary"]) :is(#sfPanel,#moveHistory,#studyTools,#moveNotes,.review-options,#variationTools,.summary-details) { display:none!important; }
/* Flex, not block: only inside the column does #movesPanel get a height and scroll on its own. */
.review-flow-active[data-review-step="detail"] #moveHistory { display:flex!important; }
.review-flow-active[data-review-step="detail"] #sfPanel:not([hidden]) { display:block!important; }
.review-flow-active[data-review-step="detail"] #studyTools:not([hidden]) { display:flex!important; flex-wrap:wrap; }
.review-flow-active[data-review-step="practice"] #reviewSteps { display:none; }
.review-flow-active[data-review-step="variation"] #reviewSteps { display:none; }
.review-flow-active .sidebar { overflow-wrap:anywhere; }
@media(max-width:900px) {
  .review-flow-heading { flex-wrap:wrap; }
  .review-flow-heading > button { max-width:100%; }
  .review-flow { padding-top:var(--space-2); }
  .review-flow-active .sidebar { padding-bottom:var(--space-6); }
}
@media(prefers-reduced-motion:reduce) { .ui-button { transition:none; } }

#reviewFlowContext { width:100%; box-sizing:border-box; }
#reviewFlowBack { display:inline-flex; align-items:center; gap:4px; }
/* The move card (#sfPanel) already names the selected move, so the bar above the board is not needed
   while reviewing; the series of all mistakes starts from Přehled (Procvičit chyby). */
.review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"],[data-review-step="summary"]):not(.study-preview) #reviewBar { display:none!important; }
/* Ukázka na počítači: nic neposkočí, tahy v kartě zůstanou pod kurzorem a deska na místě. Lišta leží na místě horní lišty hráče, Zavřít ukázku je v ní. */
@media (min-width:901px) {
  .review-flow-active.study-preview #reviewFlowBack .nav-full { display:none; }
  .review-flow-active.study-preview #reviewFlowBack .nav-short { display:inline; }
  .review-flow-active.study-preview #reviewBar { position:absolute; top:0; left:0; right:0; z-index:16; margin:0; }
  .review-flow-active.study-preview #barTop { visibility:hidden; }
}
.review-flow-active .summary .sum-retry { display:none!important; }
/* Detail tahu: one action under the move card, without a card of its own. */
#reviewFlowContent.review-flow-action { padding:0; border:0; background:none; }
#reviewFlowContent.review-flow-action .ui-button { width:100%; }
/* Practice: the review heading exits; the task is the first thing in the panel. */
.review-flow-active #rtExitBtn { display:none!important; }
#rtStatus:empty { display:none; }

/* Telefon: hlavička rozboru je v horní liště 48 px (vlevo zpět, pak co a jakou partii rozebíráš). */
@media(max-width:900px) {
  .review-flow-active #reviewFlowContext { position:fixed; top:0; left:0; right:56px; z-index:17; height:var(--top-h,48px); margin:0; padding:0 6px 0 4px;
    display:flex; flex-wrap:nowrap; align-items:center; gap:6px; border:0; border-bottom:1px solid var(--ui-border,#333b30); border-radius:0; background:var(--ui-rail,#222620); box-shadow:none; }
  .review-flow-active #reviewFlowContext > div { order:1; flex:1 1 auto; min-width:0; }
  .review-flow-active #reviewFlowContext .ui-label { font-size:12px; line-height:1.2; letter-spacing:.06em; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .review-flow-active #reviewFlowContext h1 { font-size:16px; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; overflow-wrap:normal; }
  .review-flow-active #reviewFlowContext > button { order:0; flex:none; max-width:none; min-height:40px; padding:6px 10px 6px 4px; font-size:13px; }
  .review-flow-active #reviewSteps .ui-button { min-height:44px; }
  .review-flow-active .play-area { gap:10px; }
  .review-flow-active .sidebar { padding-top:12px; }
  .review-flow-active .review-flow { padding-top:0; }
  /* Cvičení: pás tahů je prázdný; zadání, stav a tlačítka nahoru, původní tah pod ně. */
  .review-flow-active[data-review-step="practice"] .mobile-dock { display:none; }
  body.retry-mode #rtHintBtn { display:none; }
  .retry-panel > .pz-head { order:0; } .retry-panel > #rtTask { order:1; } .retry-panel > #rtStatus { order:2; }
  .retry-panel > .pz-btns { order:3; } .retry-panel > #rtList { order:4; } .retry-panel > #rtOrig { order:5; } .retry-panel > #rtExitBtn { order:6; }
  /* Otočit je v rozboru ikona v horní liště; Vrátit tah ani Nápověda do prohlížení partie nepatří. */
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"],[data-review-step="summary"]) .board-tools { position:fixed; top:4px; right:52px; z-index:18; width:40px; margin:0; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"],[data-review-step="summary"]) .board-tools #flipBtn { flex:none; width:40px; min-height:40px; padding:0; gap:0; font-size:0; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"],[data-review-step="summary"]) .board-tools #flipBtn .ui-icon { display:inline-block; width:20px; height:20px; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"],[data-review-step="summary"]) .board-tools #flipBtn .ui-emblem { display:inline-block; width:30px; height:30px; margin:0; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"],[data-review-step="summary"]) .board-tools :is(#undoBtn,#hintBtn) { display:none; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"],[data-review-step="summary"]) #reviewFlowContext { right:96px; }
  /* Ovládání ukázky je přes horní lištu hráče, deska se při spuštění ukázky neposune. */
  .review-flow-active.study-preview #reviewBar { position:fixed; top:var(--top-h,48px); left:0; right:0; z-index:16; margin:0; border-radius:0; }
  /* Detail tahu: deska, pás, hodnocení a hlavní akce na první obrazovce. Záložky jsou pod nimi, Zpět na ně vede dál. */
  .review-flow-active[data-review-step="detail"] .player-bar { flex-wrap:nowrap; min-height:32px; padding:1px 8px; }
  /* Jméno na jeden řádek; když se nevejde, ustoupí nejdřív sebrané figury. */
  .review-flow-active[data-review-step="detail"] .pb-name { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .review-flow-active[data-review-step="detail"] .pb-caps { flex:0 100 auto; min-width:0; flex-wrap:nowrap; overflow:hidden; }
  .review-flow-active[data-review-step="detail"] .play-area { gap:2px; }
  .review-flow-active[data-review-step="detail"] .sidebar { padding:0 12px 12px; gap:6px; background:none; border:0; box-shadow:none; }
  .review-flow-active[data-review-step="detail"] .sidebar { flex-flow:row wrap; }
  .review-flow-active[data-review-step="detail"] .sidebar > * { order:2; flex:0 0 100%; min-width:0; }
  .review-flow-active[data-review-step="detail"] .sidebar > :is(#sfPanel,#reviewFlowContent,#studyTools) { order:0; }
  .review-flow-active[data-review-step="detail"] .sidebar > #reviewFlow { order:1; }
  .review-flow-active[data-review-step="detail"] #sfPanel { position:relative; padding:3px 10px; }
  .review-flow-active[data-review-step="detail"] .review-heading { position:absolute; top:4px; right:4px; z-index:1; }
  .review-flow-active[data-review-step="detail"] .review-heading h2 { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .review-flow-active[data-review-step="detail"] #sfOutput { margin:0; padding:0; border:0; background:none; max-height:none; overflow:visible; }
  /* Ikony jsou v mřížce pod trenérem (rozbor-ikony-mrizka), známka má celý řádek. */
  .review-flow-active[data-review-step="detail"] #sfOutput .sf-grade { min-height:26px; line-height:1.25; }
  .review-flow-active[data-review-step="detail"] #sfOutput p { font-size:13.5px; line-height:1.35; }
  /* --detail-card měří fitDetailCard: známka a řada tahů jsou vidět vždy, posouvá se jen věta. */
  .review-flow-active[data-review-step="detail"] #sfOutput .sf-detail-coach p:not(.sf-line) { max-height:var(--detail-card,none); overflow-y:auto; }
  .review-flow-active[data-review-step="detail"] #reviewFlowContent { position:sticky; bottom:calc(var(--bar-h) + env(safe-area-inset-bottom,0px)); z-index:6; display:flex; gap:6px; margin:0; padding:4px 0; background:var(--canvas); }
  .review-flow-active[data-review-step="detail"] #reviewFlowContent[hidden] { display:none; }
  .review-flow-active[data-review-step="detail"] .sidebar:has(.sf-engine-details[open]) > #reviewFlowContent { position:static; }
  /* Čtyři akce na jednom řádku, aby se vešly pod kartu i na menším telefonu a deska se kvůli nim nezmenšila. */
  .review-flow-active[data-review-step="detail"] .sidebar > :is(#reviewFlowContent,#studyTools) { flex:1 1 0; }
  .review-flow-active[data-review-step="detail"] .sidebar > #studyTools { flex-grow:1.15; padding:4px 0; }
  .review-flow-active[data-review-step="detail"] :is(#reviewFlowContent .ui-button,#studyTools .btn) { width:auto; flex:1 1 0; min-width:0; min-height:44px; margin:0; padding:4px; font-size:12.5px; line-height:1.15; white-space:normal; }
  .review-flow-active[data-review-step="detail"] #studyTools [data-study="best"] { flex-grow:1.3; }
  .review-flow-active[data-review-step="detail"] #reviewFlowContent [data-flow="practice-one"] { flex-grow:1.5; }
  .review-flow-active[data-review-step="detail"] #studyTools { gap:6px; }
  .review-flow-active[data-review-step="detail"] .sidebar:has(.sf-line) > :is(#reviewFlowContent,#studyTools) { padding-top:2px; }
  .review-flow-active[data-review-step="detail"] #studyTools [data-study="next"] { display:none; }
  /* Karta s mřížkou 2 × 2 (92 px) je vyšší než dřív: od 681 px výšky deska o 20 px ustoupí, ať čtyři tlačítka zůstanou nad spodní lištou.
     Na nižším telefonu zůstává deska jako dřív (aspoň 230 px), druhá dvojice tlačítek je tam po malém posunutí, první zůstává přilepená. */
  @media (orientation:portrait) { body.review-flow-active[data-review-step="detail"]:not(.focus-mode) .board-col { width:min(100%,max(240px,calc(100dvh - 392px))); } }
  @media (orientation:portrait) and (max-height:680px) { body.review-flow-active[data-review-step="detail"]:not(.focus-mode) .board-col { width:min(100%,max(240px,calc(100dvh - 380px))); } }
}

/* Karta výsledku v Přehledu rozboru. */
#reviewFlowContent:has(.result-card) { padding:0; border:0; background:none; }
.result-card { display:flex; flex-direction:column; gap:8px; min-width:0; }
/* Klíčové momenty: trenér vedle nadpisu a popisku. */
.moments-head { display:flex; align-items:center; gap:10px; }
.moments-head > div { flex:1 1 0; min-width:0; }
.moments-konik { flex:none; width:96px; height:96px; margin:-6px 0 -6px -6px; }
@media (max-width:900px) { .moments-konik { width:62px; height:62px; margin:-3px 0 -3px -3px; } }
.result-card .rc-title h3 { margin:0; font-size:24px; line-height:1.15; font-weight:800; letter-spacing:-.4px; }
.result-card .rc-title p { margin:2px 0 0; font-size:13px; line-height:1.35; color:var(--muted); }
.rc-main { display:flex; flex-direction:column; gap:8px; min-width:0; }
.rc-facts { display:flex; flex-wrap:wrap; gap:2px 10px; font-size:13px; line-height:1.35; color:var(--ui-soft-text,var(--muted)); }
.result-card .rc-facts { margin:2px 0 0; }
.rc-facts span { white-space:nowrap; font-weight:600; }
.rc-next { display:flex; align-items:center; gap:10px; min-width:0; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.rc-next > div { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.rc-next b { font-size:15px; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rc-next small { font-size:12px; line-height:1.3; color:var(--muted); }
.rc-next-face { flex:none; width:40px; height:40px; display:grid; place-items:center; overflow:hidden; border-radius:8px; font-size:22px; }
.rc-next-face svg { width:100%; height:100%; }
.rc-next .ui-button { flex:none; min-width:64px; min-height:44px; font-size:14px; }
.rc-links { display:flex; flex-wrap:wrap; gap:2px 6px; }
.rc-links .ui-button { flex:1 1 auto; min-width:0; min-height:44px; padding:4px 4px; border-color:transparent; background:none; color:var(--accent); font-size:13px; font-weight:600; white-space:nowrap; }
.rc-rewards:empty { display:none; }
.rc-more { border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.rc-more > summary { box-sizing:border-box; min-height:44px; padding:12px 10px; font-size:14px; font-weight:600; line-height:20px; cursor:pointer; }
.rc-more[open] > summary { border-bottom:1px solid var(--line); }
.rc-more .rc-table { border:0; border-radius:0; background:none; }
.rc-more .rc-graph { padding:8px; }
.rc-left { display:flex; flex-direction:column; gap:6px; min-width:0; }
.rc-board { display:none; }
.result-card .rc-acc-label { margin:0; font-size:12px; line-height:1.2; color:var(--muted); }
.rc-acc { display:flex; gap:6px; }
.rc-acc > div { flex:1 1 0; min-width:0; box-sizing:border-box; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.rc-acc span { display:block; font-size:12px; font-weight:600; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rc-acc b { display:block; margin-top:2px; font-size:20px; line-height:1.15; font-weight:800; }
.rc-play { display:flex; gap:6px; }
.rc-play .btn { flex:1 1 0; min-width:0; min-height:44px; margin:0; font-size:14px; }
.rc-table { display:grid; grid-template-rows:30px repeat(var(--rc-rows,10),minmax(28px,1fr)); min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
/* Pevné šířky čísel: sloupec soupeře nesmí utéct za okraj. */
.rc-row { display:grid; grid-template-columns:minmax(0,1fr) 24px 34px; align-items:stretch; padding-right:7px; border-top:1px solid var(--line); }
.rc-row.rc-head { align-items:center; border-top:0; font-size:12px; font-weight:700; color:var(--muted); white-space:nowrap; }
.rc-row.rc-head span:not(:first-child) { text-align:right; }
.rc-row button { padding:0; border:0; background:none; color:var(--ink); font:inherit; font-size:13px; cursor:pointer; }
.rc-row button:disabled { cursor:default; }
.rc-row button:not(:disabled):hover { background:var(--ui-hover,#30392c); }
.rc-kind { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:center; min-width:0; text-align:left; }
.rc-sym { padding-left:5px; font-size:12px; font-weight:800; white-space:nowrap; }
.rc-label { font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rc-num { text-align:right; font-weight:700; }
.rc-num:disabled { font-weight:500; color:var(--muted); }
.rc-progress { display:flex; align-items:center; gap:8px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.rc-progress > div { flex:1 1 0; min-width:0; }
.result-card .rc-progress p { margin:0 0 4px; font-size:13px; line-height:1.3; }
.rc-progress progress { display:block; width:100%; height:6px; accent-color:var(--accent); }
.rc-progress .ui-button { flex:none; min-height:44px; font-size:13px; }
.rc-status-sr { position:absolute; width:1px; height:1px; margin:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.rc-graph:empty { display:none; }
.rc-graph .sum-graph { margin:0; }
.rc-graph .sg-title { display:none; }
.rc-graph .sum-tip { margin:0; font-size:13px; color:var(--muted); }
.rc-graph svg { border-color:var(--line); }
.rc-actions { display:flex; }
.rc-actions .ui-button { flex:1 1 0; min-width:0; min-height:48px; padding:4px 6px; font-size:15px; font-weight:700; white-space:nowrap; }
@media(min-width:901px) {
  /* Desktop: deska zůstává velká, karta se vejde do pravého panelu; akce jsou při nízkém okně přilepené dole. */
  .review-flow-active:has(.result-card) #reviewFlowContext { align-items:center; padding:8px 12px; }
  .review-flow-active:has(.result-card) #reviewContextLabel { display:none; }
  .review-flow-active:has(.result-card) #reviewGameTitle { font-size:16px; line-height:1.3; }
  .review-flow-active:has(.result-card) #reviewFlowBack { max-width:none; white-space:nowrap; }
  .rc-table { grid-template-rows:26px repeat(var(--rc-rows,10),minmax(23px,1fr)); }
  /* Trenér stojí vedle nadpisu i přesnosti, karta kvůli němu není vyšší. */
  .result-card:has(.rc-konik) { position:relative; --rc-coach:128px; }
  @media (max-width:1200px) { .result-card:has(.rc-konik) { --rc-coach:104px; } }
  .rc-konik { position:absolute; left:-6px; top:-6px; width:var(--rc-coach); height:var(--rc-coach); }
  .result-card:has(.rc-konik) :is(.rc-title,.rc-acc-label,.rc-acc) { margin-left:calc(var(--rc-coach) + 6px); }
}
.end-card { display:flex; flex-direction:column; gap:6px; }
.end-card[hidden] { display:none; }
.end-card h2 { margin:0; font-size:22px; line-height:1.2; font-weight:800; }
.end-card p { margin:0; font-size:13px; color:var(--muted); }
.end-card-actions { display:flex; flex-wrap:wrap; gap:6px; }
.end-card-actions .btn { flex:1 1 auto; min-width:0; min-height:44px; margin:0; display:inline-flex; align-items:center; justify-content:center; gap:3px; padding-inline:6px; white-space:nowrap; }
.end-card-actions .ui-emblem { width:24px; height:24px; margin:-2px -1px; }
@media (max-width:340px) { .end-card-actions .ui-emblem { display:none; } }
.end-card-actions .btn[hidden] { display:none; }

@media(max-width:900px) {
  /* Krátká karta (Kouzelné šachy, návrat do hry): výsledek je první věc pod deskou. */
  .sidebar:has(#endCard:not([hidden])) .workspace-heading,
  body:has(#endCard:not([hidden])) .board-tools :is(#undoBtn,#hintBtn) { display:none; }
  /* Záložky rozboru jsou v horní liště: šetří místo a při přepínání kroků neskáčou. */
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"]) #reviewFlowContext > div { display:none; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"]) #reviewFlowBack { width:40px; padding:0; justify-content:center; font-size:0; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"]) #reviewSteps { position:fixed; top:0; left:44px; right:96px; z-index:18; height:var(--top-h,48px); display:flex; flex-wrap:nowrap; gap:0; margin:0; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"]) #reviewSteps .ui-button { flex:1 1 0; min-width:0; min-height:47px; padding:0 2px; border:0; border-radius:0; background:transparent; color:var(--ui-soft-text,var(--muted)); font-size:13px; white-space:nowrap; box-shadow:none; }
  .review-flow-active:is([data-review-step="overview"],[data-review-step="moments"],[data-review-step="detail"]) #reviewSteps [aria-current="step"] { color:var(--accent); font-weight:700; box-shadow:inset 0 -3px var(--accent); }
  /* Přehled: deska vlevo pod výsledkem (168 px), pod ní přesnost a další hra, vpravo celá tabulka, akce nad spodní lištou. */
  body.review-flow-active[data-review-step="overview"]:has(.result-card) .play-area { position:relative; display:block; }
  body.review-flow-active[data-review-step="overview"]:has(.result-card):not(.review-settling) .board-col { position:absolute; left:0; top:63px; z-index:2; width:168px; margin:0; pointer-events:none; }
  body.review-flow-active[data-review-step="overview"]:has(.result-card):not(.review-settling) :is(.player-bar,.mobile-dock,.eval-bar,#reviewBar,.mate-tag,.winner-tag,.winner-crown,.quality-badge,.quality-label,.surrender-flag) { display:none!important; }
  body.review-flow-active[data-review-step="overview"]:has(.result-card) .sidebar { padding:0; background:none; border:0; box-shadow:none; }
  body.review-settling .result-card { display:none; }
  .rc-board { display:block; flex:none; width:168px; height:168px; padding:0; border:0; border-radius:4px; background:transparent; }
  .result-card .rc-title { height:47px; margin-bottom:8px; overflow:hidden; }
  /* Trenér a bublina s výsledkem; náhled desky leží přes kartu, proto se posouvá s nadpisem. */
  body.review-flow-active[data-review-step="overview"]:has(.rc-konik):not(.review-settling) .board-col { top:100px; }
  .result-card:has(.rc-konik) .rc-title { height:84px; justify-content:flex-start; gap:8px; overflow:visible; }
  .rc-konik { order:-1; width:84px; height:84px; margin-left:-4px; }
  .result-card:has(.rc-konik) .rc-title > div { position:relative; flex:1 1 0; padding:7px 10px; border:1px solid var(--line); border-radius:12px; background:var(--ui-fill,var(--surface)); }
  .result-card:has(.rc-konik) .rc-title > div::before { content:''; position:absolute; left:-7px; top:calc(50% - 6px); width:12px; height:12px; background:inherit; border-left:1px solid var(--line); border-bottom:1px solid var(--line); transform:rotate(45deg); }
  .rc-main { flex-direction:row; gap:6px; align-items:stretch; }
  .rc-left { flex:1 1 0; justify-content:center; }
  /* Oznámení odznaků po konci partie jdou nad akce, ať nezakryjí výsledek ani desku. */
  body.review-flow-active[data-review-step="overview"]:has(.result-card) .toasts { top:auto; bottom:calc(var(--bar-h,56px) + env(safe-area-inset-bottom,0px) + 120px); flex-direction:column-reverse; }
}

/* Dotykové cíle: 44 px bez změny rozložení. Malé tlačítko dostane neviditelný přesah, který bere klepnutí. */
.pb-me,.pb-rating,.review-heading .btn,.sf-live-better,.sf-engine-details > summary { position:relative; }
.pb-me::after,.pb-rating::after,.review-heading .btn::after,.sf-live-better::after,.sf-engine-details > summary::after {
  content:''; position:absolute; left:0; right:0; top:50%; height:44px; transform:translateY(-50%); }
.pb-me::after { left:-12px; }   /* jen doleva: přesah doprava by jméno v liště vykazoval jako useknuté */
@media (min-width:901px) { .review-heading .btn { min-width:38px; min-height:32px; } }
.review-bar .btn { min-height:40px; min-width:40px; padding-block:4px; }
.settings-drawer summary,.menu-settings summary { box-sizing:border-box; min-height:44px; padding-block:12px; line-height:20px; }
.menu-order-row { min-height:44px; align-items:center; }
.menu-order-row label { display:flex; align-items:center; gap:8px; min-height:44px; }
.dialog-close { min-width:44px; min-height:44px; }
.workspace-dialog .btn,.promo-box .btn { min-height:44px; }
.rc-table { grid-template-rows:30px repeat(var(--rc-rows,10),minmax(36px,1fr)); }
.board-tools .btn.hint-btn.active { background:#c79a16; border-color:#e6bf3a; color:#1a1206; }   /* tmavý nápis na průhledném tlačítku by nebyl vidět */
.rc-handicap { margin:8px 0; color:var(--muted); font-size:13px; line-height:1.4; }

/* Shrnutí partie: nad hlavní akcí, věty a jedna rada. Nabídka vyšší úrovně je pod akcemi. */
.rc-summary { min-width:0; }
.rc-summary p { margin:0; font-size:14px; line-height:1.35; }
.rc-advice { display:block; width:100%; min-height:44px; margin-top:2px; padding:4px 0; border:0; background:none; color:var(--accent); font:inherit; font-size:13.5px; font-weight:650; line-height:1.25; text-align:left; cursor:pointer; }
.rc-advice:disabled { opacity:.6; cursor:default; }
.rc-advice:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.rc-offer { padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.rc-offer p { margin:0 0 6px; font-size:14px; line-height:1.35; }
.rc-offer-actions { display:flex; gap:6px; }
.rc-offer-actions .btn { flex:1 1 0; min-height:44px; }
@media (max-height:480px) and (orientation:landscape) { .rc-summary { order:2; } .rc-actions { order:1; } .result-card > :not(.rc-title):not(.rc-main):not(.rc-summary):not(.rc-actions):not(.rc-handicap) { order:3; } }

