/* TJK v16.0.60: keep original preparation data and board logic. */
@media(min-width:1100px){
 .opp-page .opp-dashboard{grid-template-columns:minmax(250px,290px) minmax(0,1fr)!important}
 .opp-page .opp-tree-layout{display:grid!important;grid-template-columns:minmax(275px,0.85fr) minmax(360px,1.35fr) minmax(285px,0.85fr)!important;grid-template-rows:auto!important;height:auto!important;min-height:0!important;align-items:start!important;gap:10px!important}
 .opp-page .opp-master-left{grid-column:1!important;grid-row:1!important;align-self:stretch;min-width:0;max-height:calc(100dvh - 105px);overflow:auto}
 .opp-page .opp-board-card{grid-column:2!important;grid-row:1!important;min-width:0;width:100%!important;max-width:none!important}
 .opp-page .opp-analysis-side{grid-column:3!important;grid-row:1!important;min-width:0;display:flex!important;flex-direction:column!important;gap:8px!important}
 .opp-page .opp-move-row{grid-template-columns:45px 45px minmax(70px,1fr)!important;gap:3px!important}
 .opp-page .opp-move-row> :nth-child(n+4){display:none!important}
}
@media(min-width:1100px) and (max-width:1540px){.opp-page .opp-dashboard{grid-template-columns:minmax(215px,250px) minmax(0,1fr)!important}.opp-page .opp-tree-layout{grid-template-columns:minmax(220px,.85fr) minmax(330px,1.3fr) minmax(230px,.85fr)!important}}
@media(min-width:760px) and (max-width:1099px){.opp-page .opp-tree-layout{height:auto!important;grid-template-columns:minmax(240px,1fr) minmax(320px,1.2fr)!important;grid-template-rows:auto!important}.opp-page .opp-master-left{grid-column:1;grid-row:1}.opp-page .opp-board-card{grid-column:2;grid-row:1}.opp-page .opp-analysis-side{grid-column:1/-1;grid-row:2}}
@media(max-width:759px){.opp-page .opp-tree-layout{height:auto!important;min-height:0!important;grid-template-rows:auto!important;grid-template-columns:1fr!important}.opp-page .opp-board-card{grid-row:1}.opp-page .opp-analysis-side{grid-row:2}.opp-page .opp-master-left{grid-row:3}}
.opp-page .opp-find-games-collapsed{padding:12px!important}.opp-page .opp-find-games-collapsed summary{cursor:pointer;font-weight:800;color:var(--opp-blue)}.opp-page .opp-find-games-body{padding-top:14px}
.opp-page .opp-master-left{padding:12px;overflow-x:hidden}.opp-page .opp-master-left>h2{font-size:1.02rem;margin:0}.opp-page .opp-master-left>p{font-size:.76rem;color:var(--opp-muted);overflow-wrap:anywhere}.opp-page .opp-open-master{display:block;margin-top:12px;font-size:.79rem;color:var(--opp-blue);font-weight:800}
/* Unified, compact chess notation shared with analysis-style buttons. */
.opp-page .opp-played-tree-move,.opp-page .opp-game-moves button{display:inline-flex;align-items:center;gap:3px;border:0;border-radius:4px;padding:3px 6px;margin:1px;min-height:26px;font-size:.88rem;line-height:1.4;font-weight:600;background:transparent;color:var(--opp-text);cursor:pointer}
.opp-page .opp-played-tree-move:hover,.opp-page .opp-game-moves button:hover{background:var(--opp-blue-soft)}
.opp-page .opp-played-tree-move.is-current,.opp-page .opp-game-moves button.is-current{background:var(--opp-blue)!important;color:white!important}
.opp-page .opp-played-variation-line{background:color-mix(in srgb,var(--opp-card) 90%,var(--opp-blue-soft));border-left:2px solid var(--opp-line);padding-left:8px}
.opp-page .opp-engine-lines>button{display:grid;grid-template-columns:50px minmax(0,1fr) 38px;gap:6px;align-items:center;min-height:31px;padding:5px 7px;text-align:left;border:1px solid var(--opp-line);border-radius:7px;background:var(--opp-card)}
.opp-page .opp-engine-lines>button:hover{background:var(--opp-blue-soft)}
.opp-page .opp-engine-lines>button .analysis-pv-line{white-space:normal;overflow-wrap:anywhere}
