.practice-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}
.practice-stats>div{padding:18px 20px;background:var(--panel2);border:1px solid var(--border);border-radius:14px;display:grid;gap:7px}
.practice-stats strong{font-size:1.8rem;color:var(--white);letter-spacing:-.04em}.practice-stats strong span{font-size:.8rem;color:var(--muted);font-weight:600;letter-spacing:0}
.practice-stats>div>span{color:var(--muted);font-size:.77rem}
.practice-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,1fr);gap:22px;align-items:start}
.practice-board-card{display:grid;gap:18px;min-width:0}.practice-board-card .card-head{margin-bottom:0}.practice-board-card .chessboard{justify-self:center;max-width:580px}
.puzzle-feedback{font-size:.88rem;line-height:1.7;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel2);min-height:76px}
.puzzle-feedback.solved{border-color:var(--mint);color:var(--mint);background:var(--panel3)}
.puzzle-goal{display:grid;justify-items:start;gap:12px;margin:24px 0}.puzzle-goal h3{font-size:1.15rem;line-height:1.45}
.practice-side .btn[data-action="puzzle-daily"]{width:100%}.practice-note{margin-top:19px;line-height:1.7}
.practice-tip h3{font-size:1.2rem;margin:12px 0 15px}.practice-tip p{color:var(--muted);font-size:.87rem;line-height:1.8;margin-top:13px}
.install-icon{border-radius:16px;border:1px solid var(--border);flex:none}.install-card .card-head h2{line-height:1.4}.install-copy{line-height:1.75;margin:15px 0}.install-card p:last-child{margin-bottom:0}
.install-dialog{width:min(94vw,550px);max-height:90dvh;padding:22px;background:var(--bg);border:1px solid var(--border);color:var(--white);border-radius:18px;box-shadow:var(--shadow)}
.install-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}.install-dialog .install-card{margin:0}.install-dialog .appearance-dialog-head{margin-bottom:18px}
.auth-install-button{position:fixed;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));z-index:5}
.auth-practice-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}.login-card .auth-practice-links .btn{width:auto;flex:1;white-space:normal;line-height:1.5}
.guest-practice{max-width:1280px;margin:0 auto;padding:28px clamp(14px,4vw,45px) 60px}
.guest-practice-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px;flex-wrap:wrap}
.guest-brand{font-weight:850;font-size:1.1rem;letter-spacing:.1em;color:var(--white);text-decoration:none;display:flex;align-items:center;gap:12px}.guest-brand img{border-radius:10px}
.guest-practice .game-layout{grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr)}
.analysis-panel{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.analysis-panel .card-head{margin-bottom:16px}.analysis-panel h2{font-size:1.05rem}
.analysis-progress{color:var(--mint);margin:14px 0;line-height:1.6}.analysis-panel progress{width:100%;height:8px;display:block;accent-color:var(--mint);margin-bottom:16px}
.evaluation-readout{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8rem;margin-bottom:8px}.evaluation-readout strong{color:var(--white);font-size:1.1rem}.evaluation-readout span{font-size:.69rem;color:var(--muted)}
.evaluation-bar{height:9px;border-radius:8px;background:#28313e;border:1px solid var(--border);margin:0 0 18px;overflow:hidden}.evaluation-bar span{height:100%;display:block;background:#fff7e4;transition:width .18s}
.analysis-summary{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 13px}.analysis-summary span{font-size:.7rem;color:var(--muted);padding:7px 8px;border-radius:7px;background:var(--panel3)}.analysis-summary b{color:var(--white)}
.analysis-moves{max-height:310px;overflow:auto;display:grid;gap:7px;padding:2px}
.analysis-move{width:100%;min-width:0;text-align:left;padding:11px;background:var(--panel2);border:1px solid var(--border);color:var(--white);border-radius:9px}
.analysis-move>span{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:.8rem}.analysis-move small{display:block;color:var(--muted);font-size:.72rem;line-height:1.6;margin-top:6px}
.analysis-grade{font-size:.67rem;color:var(--mint);font-weight:750}.analysis-move.mistake .analysis-grade,.analysis-move.inaccuracy .analysis-grade{color:var(--gold)}.analysis-move.blunder .analysis-grade{color:var(--red)}.analysis-move:hover{border-color:var(--mint)}
.analysis-note{line-height:1.7;margin-top:16px;overflow-wrap:anywhere}
@media(max-width:1100px){.practice-layout{grid-template-columns:minmax(0,1fr) minmax(240px,.8fr)}}
@media(max-width:900px){.practice-layout,.guest-practice .game-layout{grid-template-columns:minmax(0,1fr)}.practice-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.practice-side .install-card{grid-column:1/-1}.analysis-panel{margin-top:20px}}
@media(max-width:600px){.practice-stats{gap:8px}.practice-stats>div{padding:13px 10px}.practice-stats strong{font-size:1.45rem}.practice-stats strong span{font-size:.66rem}.practice-stats>div>span{font-size:.65rem}.practice-side{grid-template-columns:1fr}.practice-board-card{padding:12px;gap:14px}.practice-board-card .card-head{padding:3px 2px}.practice-board-card .card-head h2{font-size:.95rem}.practice-board-card .pill{font-size:.65rem}.puzzle-feedback{font-size:.8rem;padding:12px}.practice-layout{gap:15px}.guest-practice{padding-top:18px}.guest-practice-header{gap:15px;margin-bottom:27px}.guest-practice-header .button-row{width:100%}.auth-install-button{left:12px;top:12px}.auth-theme-button{max-width:54vw}.install-dialog{padding:15px}.install-dialog .install-card{padding:16px}.analysis-panel .eyebrow{font-size:.65rem}.login-wrap{padding-top:70px;padding-bottom:24px}.install-icon{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){.evaluation-bar span{transition:none}}
