/* The badges are pixels from the approved illustrated sheet, not CSS glyphs.
   CSS only selects a sprite and positions it. Keep the source art unchanged. */
.review-badge-art {
    display: inline-block;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-image: url("../img/analysis/review-badges-approved-20261015.63838a36b60d.png");
    background-size: 685.7142857% 457.1428571%;
    background-position: var(--badge-x) var(--badge-y);
    vertical-align: middle;
}
.review-badge-art[data-quality="book"] { --badge-x: 7.0121951%; --badge-y: 18.125%; }
.review-badge-art[data-quality="best"] { --badge-x: 30.3353659%; --badge-y: 18.125%; }
.review-badge-art[data-quality="star"] { --badge-x: 53.3536585%; --badge-y: 18.125%; }
.review-badge-art[data-quality="good"] { --badge-x: 7.0121951%; --badge-y: 52.875%; }
.review-badge-art[data-quality="great"] { --badge-x: 30.3353659%; --badge-y: 52.875%; }
.review-badge-art[data-quality="brilliant"] { --badge-x: 53.3536585%; --badge-y: 52.875%; }
.review-badge-art[data-quality="inaccuracy"] { --badge-x: 7.0121951%; --badge-y: 86.75%; }
.review-badge-art[data-quality="mistake"] { --badge-x: 30.3353659%; --badge-y: 86.75%; }
.review-badge-art[data-quality="blunder"] { --badge-x: 53.3536585%; --badge-y: 86.75%; }
.analysis-lab .move-table__badge:has(.review-badge-art) { padding: 0; background: none; border: 0; }
.analysis-lab .move-table__badge .review-badge-art { width: 23px; height: 23px; }
.analysis-lab .analysis-board-badge {
    position: absolute;
    z-index: 12;
    display: block;
    width: 4.5%;
    height: 4.5%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 1;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    transform: translate(-50%, -50%);
    cursor: pointer;
    touch-action: manipulation;
}
.analysis-board-badge .review-badge-art { width: 100%; height: 100%; }
.analysis-board-badge:focus-visible { outline: 3px solid var(--theme-accent); outline-offset: 3px; }
.analysis-review-report {
    width: min(680px, calc(100vw - 24px));
    max-height: calc(100dvh - 24px);
    margin: auto;
    padding: 22px;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--theme-border);
    border-radius: 22px;
    color: var(--theme-text);
    background: var(--theme-surface);
}
.analysis-review-report__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.analysis-review-report__head p { margin: 0 0 5px; color: var(--theme-accent-text); font: 800 10px/1.3 "Archivo", sans-serif; letter-spacing: .12em; }
.analysis-review-report__head h2 { font-size: 24px; line-height: 1.15; }
.analysis-review-report .analysis-dialog__close { flex: 0 0 48px; width: 48px; height: 48px; }
.analysis-review-report__status { color: var(--theme-muted); font-size: 13px; }
.analysis-review-mode { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; font-size: 13px; font-weight: 750; }
.analysis-review-mode select { flex: 1 1 200px; min-width: 0; min-height: 48px; max-width: 100%; border: 1px solid var(--theme-border); border-radius: 9px; padding: 8px 12px; background: var(--theme-input); color: var(--theme-text); font: inherit; }
.analysis-review-report progress { width: 100%; height: 7px; accent-color: var(--theme-accent); margin: 8px 0; }
.analysis-review-report__scores { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0; }
.review-player-score { padding: 14px; min-width: 0; border: 1px solid var(--theme-border); border-radius: 14px; background: var(--theme-surface-alt); }
.review-player-score span, .review-player-score small { display: block; color: var(--theme-muted); font-size: 12px; overflow-wrap: anywhere; }
.review-player-score strong { display: block; margin: 5px 0; color: var(--theme-title); font: 800 30px/1.1 "Archivo", sans-serif; }
.review-player-score small { font-size: 11px; }
.analysis-review-report__graph { margin-block: 14px; }
.review-graph-svg { display: block; width: 100%; height: 108px; border-radius: 10px; background: var(--theme-input); }
.review-graph-svg .review-graph-axis { stroke: var(--theme-muted); opacity: .35; }
.review-graph-svg .review-graph-line { fill: none; stroke: var(--theme-accent); stroke-width: 2; }
.review-graph-svg circle { fill: var(--theme-accent-text); stroke: var(--theme-surface); stroke-width: 1.5; cursor: pointer; }
.review-graph-svg circle:focus { outline: none; stroke: var(--theme-title); stroke-width: 3; }
.review-graph-caption { margin-top: 6px; color: var(--theme-muted); font-size: 11px; }
.review-count-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.review-count-table th { padding: 7px 4px; color: var(--theme-muted); font-size: 11px; font-weight: 750; text-align: center; }
.review-count-table th:first-child { text-align: left; }
.review-count-table td { padding: 4px; border-top: 1px solid var(--theme-border); }
.review-count-table td:first-child { width: 64%; }
.review-count-label { display: flex; align-items: center; gap: 9px; min-height: 36px; }
.review-count-table button { display: block; min-width: 44px; min-height: 40px; margin: auto; border: 0; border-radius: 8px; background: var(--theme-input); color: var(--theme-text); font: inherit; font-weight: 750; cursor: pointer; }
.review-count-table button:disabled { background: transparent; color: var(--theme-muted); cursor: default; }
.analysis-review-report__selected { margin-top: 16px; padding: 13px; border: 1px solid var(--theme-border); border-radius: 12px; background: var(--theme-surface-alt); }
.analysis-review-report__selected strong { display: flex; gap: 9px; align-items: center; }
.analysis-review-report__selected p { margin: 8px 0; font-size: 13px; line-height: 1.5; }
.analysis-review-report__selected .btn { margin-top: 8px; min-height: 44px; }
.analysis-review-report__note { margin: 15px 0; color: var(--theme-muted); font-size: 11px; line-height: 1.5; }
.analysis-review-report__actions { display: flex; flex-wrap: wrap; gap: 9px; }
.analysis-review-report__actions .btn { min-height: 48px; flex: 1 1 auto; }
.analysis-lab .analysis-review-summary.review-score-strip { display: flex; flex: 0 0 auto; gap: 8px; flex-wrap: nowrap; padding: 3px 0; margin-bottom: 5px; }
.review-score-strip button { flex: 1 1 0; min-width: 0; min-height: 30px; border: 1px solid var(--theme-border); border-radius: 8px; padding: 4px 7px; background: var(--theme-surface-alt); color: var(--theme-text); font: 700 11px/1.3 "Archivo", sans-serif; cursor: pointer; }
.review-score-strip b { margin-left: 4px; color: var(--theme-accent-text); }
@media (min-width: 901px) {
    .analysis-lab .analysis-section-title { display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; }
    .analysis-lab .analysis-section-actions { display: flex; flex-direction: row; gap: 6px; justify-content: stretch; }
    .analysis-lab .analysis-section-actions .analysis-text-btn { flex: 1 1 0; min-width: 0; min-height: 40px; padding: 5px 3px; font-size: .75rem; }
}
@media (max-width: 900px) {
    .analysis-lab .analysis-review-summary.review-score-strip { padding: 0 8px 3px; max-height: 35px; }
    .analysis-lab .analysis-section-actions [data-mainline] { display: none; }
    .analysis-review-report { padding: 16px; }
    .analysis-review-report__head h2 { font-size: 21px; }
    .analysis-review-report .review-badge-art { width: 26px; height: 26px; }
    .analysis-review-report__selected .btn { width: 100%; }
}
