/* Ruch v7: compact course navigation and gentle, original visual details. */
.opening-catalog-toolbar{flex-wrap:wrap;gap:12px}
.opening-kind-filter{margin-left:auto}
.opening-catalog-toolbar .opening-search{flex:1 1 230px;max-width:320px}
.opening-start-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}
.opening-start-row>span{font-size:12px;color:var(--muted,#aaa79f);max-width:290px}
.opening-line-progress{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted,#aaa79f);margin:12px 0 16px}
.opening-line-progress strong{font-variant-numeric:tabular-nums;color:var(--text,#eee)}
.opening-line-progress>.progress-track{flex-basis:100%;height:4px}
.opening-line-progress .progress-fill{display:block;height:100%;background:var(--accent,#a3cf5d);transition:width .18s ease}
.opening-course-card{transition:transform .16s ease,border-color .16s ease,background .16s ease}
.opening-course-card:hover{transform:translateY(-2px)}
.opening-mode-card:focus-visible,.opening-line:focus-visible,.opening-course-card:focus-visible{outline:2px solid var(--accent,#a3cf5d);outline-offset:3px}
.opening-trainer .puzzle-title{line-height:1.3;text-wrap:balance}
.quality-icon{filter:drop-shadow(0 1px 1px #0004)}
.analysis-ply-count{font-variant-numeric:tabular-nums;font-size:13px;white-space:nowrap;color:var(--text,#eee);margin-right:4px}
.analysis-ply-count small{color:var(--muted,#aaa79f);font-size:11px}
.game-review-icon-legend{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
@media(max-width:700px){.analysis-transport{gap:3px}.analysis-transport .icon-button{width:32px;height:34px}.analysis-ply-count{font-size:11px}}
@media(max-width:700px){
 .opening-catalog-toolbar{align-items:stretch}
 .opening-kind-filter{margin-left:0;order:2;overflow-x:auto;max-width:100%}
 .opening-catalog-toolbar .opening-search{max-width:none;flex-basis:100%;order:3}
 .opening-start-row .button{width:100%}
 .opening-start-row>span{max-width:none}
}
@media(prefers-reduced-motion:reduce){
 .opening-course-card,.opening-line-progress .progress-fill{transition:none}
 .opening-course-card:hover{transform:none}
}
