body:has(#review:not([hidden])) {background:#00242b;color:#bad2dc;--review-board-width:clamp(580px,calc((100dvh - 210px)*655/735),900px)}
body:has(#review:not([hidden])) header {background:#043440;border-color:#17515e}
body:has(#review:not([hidden])) header .nav {max-width:1800px;min-height:58px;padding-block:6px}
body:has(#review:not([hidden])) .brand,body:has(#review:not([hidden])) nav button {color:#bdd4e0}
body:has(#review:not([hidden])) nav button.active {background:#075567;color:#fff}
body:has(#review:not([hidden])) .load-card {display:none}
main:has(#review:not([hidden])) {max-width:calc(var(--review-board-width) + 810px);margin:14px auto;padding:0 18px}
#review {--m0:#61d878;--m1:#46c5fb;--m2:#bd91ff;--m3:#ffb86b;--ink:#b9d3df;--review-muted:#a6c6d0;--review-caption:#93b9c7;font-family:"Segoe UI","Microsoft YaHei",sans-serif}
#review h1 {margin:0;font-size:22px;color:#e1f2f6}
#review h1 span {font-size:11px;color:var(--review-caption);letter-spacing:1.5px;margin-left:12px}
#review h2 {font-size:16px;font-weight:600;margin:0}
#review p {color:var(--review-muted);font-size:13px;line-height:1.65}
/* Entry-only rules: the established replay table/hand/control geometry is unchanged. */
#review-entry {max-width:680px;margin:clamp(40px,9vh,110px) auto 40px}
.review-entry-heading {margin-bottom:26px}
#review-entry h1 {font-size:30px}.review-entry-heading p {margin:8px 0 0}
.review-entry-form {display:flex;flex-direction:column;gap:24px;background:#05434f;border:1px solid #245969;padding:30px;border-radius:5px}
.review-entry-form>.review-url {display:flex;flex-direction:column;gap:10px;font-size:14px;font-weight:550}
#review-entry #review-url {min-height:48px;width:100%;font-size:14px}
#review-entry #review-models {flex-wrap:wrap;gap:10px;padding:0;border:0;min-width:0}
#review-entry #review-models legend {float:none;display:block;width:100%;margin:0 0 10px;font-size:14px}
#review-entry #review-models label {padding:10px 15px;min-height:44px}
#review-entry #review-start {width:100%;min-height:48px;font-size:16px}
#review-options {font-size:12px;color:#a6c6d0}#review-options>summary {cursor:pointer;width:max-content}
.review-entry-options {display:flex;flex-wrap:wrap;gap:15px;padding-top:16px}
.review-entry-options label {display:flex;flex-direction:column;gap:8px;flex:1;min-width:210px}
#review input[type=number] {min-height:38px;max-width:100%;width:100%;border:1px solid #306675;background:#002e39;color:#d1e6eb;border-radius:3px;padding:8px 10px;font-size:14px}
.review-entry-options small {font-size:12px;color:var(--review-muted);line-height:1.6}
.review-temperature-setting {display:flex;align-items:center;gap:10px;margin-top:14px;font-size:12px}
#review .review-temperature-setting input {width:85px;margin-left:auto}
#review-progress {padding:20px 24px;margin-top:18px;background:#05434f;border:1px solid #245969;border-radius:4px}
#review-progress>div {display:flex;justify-content:space-between;align-items:center;gap:12px}
#review-progress-label {font-size:15px}#review-progress p {margin:8px 0 0}
#review-progress-bar {width:100%;height:8px;margin-top:16px;accent-color:#61d878}
#review #review-history-toggle {display:block;margin:18px auto 0;border:0;background:transparent;color:#9cc4d0;font-size:13px}
#review-entry-history {padding-top:14px}#review-entry-history select {width:100%}
#review-result-models {display:flex;align-items:center;gap:10px}
#review #review-result-models button {display:flex;align-items:center;gap:6px;padding:5px 12px;min-height:32px;background:#00333e;border:1px solid #31616c;font-size:14px;color:var(--review-muted)}
#review-result-models i {width:8px;height:8px;border-radius:50%;background:currentColor}
#review #review-result-models .model-c0 {color:var(--m0)}#review #review-result-models .model-c1 {color:var(--m1)}#review #review-result-models .model-c2 {color:var(--m2)}
#review #review-result-models .model-c3,.model-c3 {color:var(--m3)}
#review-result-models {flex-wrap:wrap}
#review-mortal-key-wrap {display:flex;flex-direction:column;gap:8px;font-size:14px}
#review-mortal-key-wrap[hidden] {display:none}
#review-mortal-key-wrap small {font-size:12px;color:var(--review-muted);line-height:1.6}
#review-mortal-key {border:1px solid #306675;background:#002e39;color:#d1e6eb;border-radius:3px;padding:10px;min-height:40px}
.bar-c3 {background:var(--m3)}
.weight-bars .model-c3::-webkit-progress-value {background:var(--m3)}
#review-groups.review-four-models .weight-columns,#review-groups.review-four-models .weight-row {grid-template-columns:minmax(65px,1.2fr) minmax(22px,.5fr) repeat(4,minmax(48px,1fr));gap:5px;padding-inline:8px}
#review-groups.review-four-models .weight-columns strong {font-size:12px;overflow-wrap:normal}
#review #review-result-models button[aria-pressed=true] {background:#145360;border-color:currentColor;box-shadow:inset 0 -2px currentColor;font-weight:700}
.review-sort-label {font-size:13px;color:var(--review-muted)}
#review #review-new {font-size:13px;padding:8px 12px}
@media(max-width:760px){#review-entry{margin:32px auto}.review-entry-form{padding:22px 18px;gap:20px}.review-entry-options label{min-width:0;flex-basis:100%}#review-result-models{gap:6px}#review #review-result-models button{padding:5px 9px}}
.review-top {display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:8px}
.review-top p {margin:3px 0}.review-has-game .review-top p {display:none}
.review-top label {font-size:13px;font-weight:550}
#review-source {margin:0 0 8px;color:#abcbd6;font-size:13px}
#review-source>summary {cursor:pointer;display:list-item;width:max-content;padding:4px 0}
#review-source[open] {margin-top:8px}.review-import {display:flex;gap:12px;align-items:end;padding:18px;margin-top:7px;background:#063e4a;border:1px solid #15505d;border-radius:4px}
.review-import label {font-size:13px;font-weight:550;display:flex;flex-direction:column;gap:7px;min-width:145px}.review-url {flex:1}
#review input[type=text],#review select {border:1px solid #306675;background:#002e39;color:#d1e6eb;border-radius:3px;padding:9px 10px;min-height:40px;max-width:100%}
#review input::placeholder {color:#86acba}
#review button {background:#075668;border:1px solid #357482;border-radius:2px;color:#cbe2eb;padding:10px 12px}
#review button:hover:not(:disabled) {background:#096a7f;border-color:#7eacb6}
#review button:disabled {opacity:.35;cursor:default}
#review button:focus-visible,#review .weight-value:focus-visible {outline:2px solid #81cddf;outline-offset:2px}
#review #review-start {background:#318d79;border-color:#51ac93;color:#effff9;font-weight:600;min-height:43px;white-space:nowrap}
.review-toolbar {display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:8px 0 12px;min-height:48px}
#review-models {margin:0;display:flex;gap:10px;align-items:center}
#review-models legend {float:left;margin:0 12px 0 0;font-size:13px;color:var(--review-muted);line-height:30px}
#review-models label {display:flex;gap:6px;align-items:center;margin:0;padding:4px 9px;border:1px solid #31616c;border-radius:3px;font-size:14px}
#review-models i {width:8px;height:8px;background:currentColor;border-radius:50%}
.model-c0 {color:var(--m0)}.model-c1 {color:var(--m1)}.model-c2 {color:var(--m2)}
#review-status {margin-left:auto;font-size:13px;color:var(--review-muted)}
#review-empty {text-align:center;min-height:450px;display:flex;flex-direction:column;justify-content:center;border:1px dashed #245764;background:#03313b}
#review-empty strong {font-size:24px;font-weight:500;color:#bdd9e1}#review-empty small {color:var(--review-caption);font-size:13px;padding:0 12px}
.review-layout {display:grid;grid-template-columns:minmax(0,var(--review-board-width)) 224px minmax(390px,1fr);gap:16px;align-items:start}
.review-table-column {position:relative;container-type:inline-size;width:100%;aspect-ratio:655/735;background:#064550;min-width:0}
#review-table {display:block;width:100%;height:100%;aspect-ratio:655/735}
#review-hand-area,#review-hand {position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#review .hand-tile {position:absolute;display:flex;flex-direction:column;align-items:center;min-width:0;pointer-events:auto}
#review .review-tile {display:inline-block;height:35px;width:auto;vertical-align:middle;background:transparent;border:0;padding:0;border-radius:3px;aspect-ratio:320/446}
#review .hand-tile img {width:100%;height:var(--hand-height);aspect-ratio:auto;display:block;border:0;padding:0;border-radius:4px}
#review .hand-tile.actual img,#review .hand-tile.low img {outline:4px solid #ef334f;outline-offset:0;box-shadow:0 0 0 5px #ff8797}
.hand-bars {height:7.6336cqw;display:flex;align-items:end;gap:1px;width:76%;justify-content:center;padding-bottom:2px}
.hand-bars span {width:28%;max-width:11px;min-height:0}.bar-c0 {background:var(--m0)}.bar-c1 {background:var(--m1)}.bar-c2 {background:var(--m2)}
.hand-tile small {height:16px;line-height:16px;font-size:10px;color:var(--review-muted);white-space:nowrap}
.hand-tile.actual small,.hand-tile.low small {color:#ff8799;font-weight:700}
#review #review-spoiler-toggle {position:absolute;left:14.5%;top:78.23%;width:83.2%;height:6.8%;pointer-events:auto;background:transparent;border:0;padding:0 8px;color:#b9d3df;font-size:clamp(12px,2.2cqw,18px);line-height:1.35;z-index:1;cursor:pointer}
#review-spoiler-toggle span {opacity:0}#review-spoiler-toggle:hover span,#review-spoiler-toggle:focus-visible span {opacity:1;background:#064550ed}
#review.review-ai-hidden #review-spoiler-toggle {background:#064550}#review.review-ai-hidden #review-spoiler-toggle span {opacity:1}
#review-reveal-controls {position:absolute;top:93.5%;left:0;width:100%;display:flex;justify-content:center;gap:10px}
#review #review-reveal-controls button {padding:2px 4px;border:0;background:transparent;color:#9cc4d0;font-size:11px;line-height:18px}
#review #review-reveal-controls button[aria-pressed=true] {color:#d5f2f7;background:#0b5b68}
#review-player {position:absolute;bottom:1%;left:0;width:100%;text-align:center;font-size:11px;line-height:16px;color:var(--review-muted)}
.review-controls {background:#05434f;padding:10px;min-width:0}
.review-controls>select {width:100%;font-size:14px;padding:9px 7px!important}
#review-position {font-size:12px;color:var(--review-muted);padding:9px 0;text-align:center;min-height:40px}
.review-nav-grid {display:grid;grid-template-columns:1fr 1fr;gap:5px}
.review-nav-grid button {min-height:61px;font-size:13px;padding:5px 2px!important}
#review-scrub {width:100%;margin:16px 0 12px;accent-color:#5dc5c5}
#review-rating {width:100%;font-size:15px;min-height:46px}
#review-rating[aria-expanded=true] {background:#0b6976}
.review-controls details {font-size:12px;color:var(--review-muted);margin-top:16px}
.review-controls details p {font-size:12px;line-height:1.7}.review-controls summary {cursor:pointer}
#review-summary {margin-top:12px;padding-top:4px;border-top:1px solid #2a616d;font-size:12px;line-height:1.7;color:var(--review-muted)}
.review-model-metrics {display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:8px 0;border-bottom:1px solid #225664;font-variant-numeric:tabular-nums}
.review-metric-values {display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.review-metric-values>span {display:flex;align-items:baseline;gap:8px;cursor:help}
.review-metric-values b {color:#d7eaf0;font-size:16px;font-weight:650;min-width:57px;text-align:right}
.review-metric-values>.review-match-rate {gap:4px}.review-match-rate small {font-size:10px;color:#a6c6d0;white-space:nowrap}
.review-weights {background:#05434f;min-width:0;max-height:calc(var(--review-board-width)*735/655);overflow-y:auto;scrollbar-color:#397481 #053c48;scrollbar-width:thin}
#review-choice {display:flex;align-items:center;flex-wrap:wrap;gap:8px 15px;margin:0;padding:10px 14px;border-bottom:8px solid #00242b;font-size:14px}
#review-choice>div {display:flex;align-items:center;gap:6px;min-height:32px}
#review-choice .review-tile {height:32px}
#review-choice>.review-event {flex-basis:100%;font-size:13px;color:#a3c8d3;flex-wrap:wrap;min-height:22px}
#review-choice>.review-event .review-tile {height:25px}
.review-call-discard small {font-size:11px;color:#9fc1cc}
#review #review-choice>.review-actual .review-tile,#review .review-call-discard .review-tile {outline:3px solid #ef334f;outline-offset:0}
.review-weight-header {padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #245969;background:#05434f}
.review-weight-header h2 {font-size:18px!important}.review-weight-header>span {font-size:11px;color:var(--review-muted)}
.review-candidate-context {padding:7px 14px;color:#9abfcb;font-size:12px;line-height:1.5}
.weight-columns,.weight-row {display:grid;grid-template-columns:minmax(95px,1.2fr) minmax(55px,1fr) repeat(var(--model-count,3),minmax(64px,.8fr));align-items:center;gap:8px;padding:7px 12px}
.weight-columns {position:sticky;top:0;z-index:2;background:#05434f;border-bottom:1px solid #35717e;font-size:15px;text-align:right}
.weight-columns>span:first-child {text-align:left}.weight-columns strong {font-size:16px;font-weight:650}
.weight-row {min-height:56px;border-bottom:1px solid #17505b;border-left:4px solid transparent;padding-left:8px;font-variant-numeric:tabular-nums}
.weight-row.actual {background:#164d55;border-left-color:#ef334f}.weight-row.low {background:#503844}
.weight-action {display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:16px;line-height:1.25;min-width:0}
#review .weight-action .review-tile {height:39px}
.weight-action em {font-style:normal;font-size:10px;color:#ff9ba9;white-space:nowrap;font-weight:600}
#review .weight-row.actual .weight-action .review-tile {outline:3px solid #ef334f;outline-offset:0}
.weight-bars {display:flex;flex-direction:column;gap:2px}
.weight-bars progress {display:block;width:100%;height:4px;border:0;appearance:none;background:#28606a;border-radius:2px;overflow:hidden}
.weight-bars progress::-webkit-progress-bar {background:#28606a}
.weight-bars .model-c0::-webkit-progress-value {background:var(--m0)}.weight-bars .model-c1::-webkit-progress-value {background:var(--m1)}.weight-bars .model-c2::-webkit-progress-value {background:var(--m2)}
.weight-value {text-align:right}.weight-value b {font-size:17px;font-weight:500;color:#bdd0d9;white-space:nowrap}.weight-value.best b {color:inherit;font-weight:750}
.weight-empty {font-size:13px;color:#92b7c2;padding:0 14px 14px}
#review-groups .review-riichi-branch {margin:0 0 8px;border-left:3px solid #459ba9;background:#083b49}
#review-groups .review-riichi-branch summary {cursor:pointer;font-size:13px;padding:9px 12px;color:#b8d8e2}
#review-groups .review-riichi-branch summary small {float:right;font-size:11px;color:#91b8c6}
#review-groups .review-riichi-branch .weight-row {border-left-width:1px;padding-left:8px}
.review-no-evaluation {padding:36px 20px;color:#b9d3df;text-align:center;line-height:1.7;font-size:15px}.review-no-evaluation small {display:block;font-size:13px;color:#91b7c4;margin-top:9px}
.review-timeline {margin-top:14px;background:#063b48;padding:12px 15px}
.review-timeline h2 {font-size:14px!important}.review-timeline h2 small {font-size:12px;color:var(--review-caption);margin-left:14px}
#review-timeline {display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
#review-timeline button {font-size:12px;padding:4px 7px;min-width:35px}
#review-timeline button.low {border-color:#c75c6e;color:#ff9ba4;background:#49343e}
#review-timeline button.current {outline:2px solid #b4dce3;outline-offset:2px}
#review .error {background:#502f3a;color:#ffbac4}body:has(#review:not([hidden])) footer {color:#93b9c7}
@media(max-width:1450px) {
 .review-layout {grid-template-columns:minmax(0,1fr) 190px minmax(365px,.8fr);gap:12px}
 .review-nav-grid button {min-height:53px;font-size:12px}
 .weight-columns,.weight-row {grid-template-columns:minmax(80px,1fr) minmax(35px,.65fr) repeat(var(--model-count,3),minmax(56px,.8fr));gap:5px;padding-right:9px}
 .weight-value b {font-size:15px}.weight-columns strong {font-size:14px}
 .weight-action {font-size:14px}#review .weight-action .review-tile {height:35px}
}
@media(max-width:1150px) {
 .review-layout {grid-template-columns:minmax(0,1fr) minmax(365px,.8fr)}
 .review-controls {grid-column:1;grid-row:2}.review-weights {grid-column:2;grid-row:1 / span 2;max-height:1000px}
 .review-nav-grid {grid-template-columns:repeat(4,1fr)}.review-import {flex-wrap:wrap}.review-url {flex-basis:60%}
 .review-top {flex-wrap:wrap}.review-top select {max-width:72%!important}
}
@media(max-width:760px) {
 main:has(#review:not([hidden])) {padding:0 8px;margin-top:10px}.review-layout {display:flex;flex-direction:column;gap:12px}
 .review-table-column,.review-controls,.review-weights {width:100%}.review-weights {max-height:800px}
 .review-toolbar {gap:8px}#review-models {flex-wrap:wrap;gap:6px}#review-models legend {float:none;width:100%}#review-status {margin-left:0;font-size:12px}
 #review h1 span {display:none}.review-import {padding:12px}.review-import label {min-width:0;flex:1}.review-import .review-url {flex-basis:100%}
 .review-top label {width:100%}.review-nav-grid button {min-height:46px}.review-timeline h2 small {display:block;margin:4px 0}
 #review-player {font-size:9px}#review-reveal-controls {gap:5px}#review #review-reveal-controls button {font-size:9px;padding:0 3px}
 .hand-tile small {font-size:8px;line-height:12px;height:12px}
}

#review-round-result{position:absolute;inset:12px;z-index:3;overflow-y:auto;background:#02333ff5;border:1px solid #54818d;border-radius:9px;box-shadow:0 10px 35px #001e29b0;scrollbar-color:#619dab #063a46}
.review-result-card{padding:24px 26px;color:#d8e9ee}
#review .review-result-card h2{text-align:center;font-size:30px;font-weight:700;color:#75dac5;margin:0 0 8px}
#review .review-result-subtitle{text-align:center;font-size:16px;color:#bdd4df;margin:0 0 20px}
.review-result-hands>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:9px 0;font-size:14px}
.review-result-hands strong{min-width:115px}.review-result-hands>div>span{min-width:32px;color:#a9ddc9}
.review-result-tiles{display:flex;gap:2px;max-width:100%;flex-wrap:wrap}#review .review-result-tiles img{height:29px}
.review-result-card table{width:100%;border-collapse:collapse;margin-top:20px;font-size:18px;font-variant-numeric:tabular-nums}
#review .review-result-card thead,#review .review-result-card th{background:#0b4654}
.review-result-card th{font-size:13px;font-weight:500;color:#95bac8;text-align:right;padding:9px 10px;border-bottom:1px solid #3e6978}
.review-result-card th:first-child,.review-result-card td:first-child{text-align:left}
.review-result-card td{padding:13px 10px;border-bottom:1px solid #234e5c;text-align:right}
.review-result-card tr.self{background:#1b5970}.review-result-card td.gain{color:#62dc9a}.review-result-card td.loss{color:#ff8697}
#review .review-result-footnote{font-size:12px;color:#90b2c0;margin:14px 0 0}
#review-timeline button.round-result{border-color:#55a9a2;color:#8ee4d1;min-width:55px}
@media(max-width:720px){.review-result-card{padding:15px 13px}.review-result-card table{font-size:14px}.review-result-card td{padding:10px 5px}#review .review-result-card h2{font-size:25px}#review .review-result-tiles img{height:23px}.review-result-hands strong{min-width:85px}}
@media(max-width:720px){#review #review-spoiler-toggle{height:42px;font-size:14px}#review-reveal-controls{gap:6px}#review #review-reveal-controls button{font-size:11px}}

/* Additional v3.0 model column; existing model colors remain unchanged. */
#review {--m4:#f18bb9}
#review #review-result-models .model-c4,.model-c4 {color:var(--m4)}
.weight-bars .model-c4::-webkit-progress-value {background:var(--m4)}
#review-groups[style*="--model-count: 5"] .weight-columns,#review-groups[style*="--model-count: 5"] .weight-row {grid-template-columns:minmax(60px,1fr) minmax(20px,.4fr) repeat(5,minmax(42px,1fr));gap:4px;padding-inline:6px}

.bar-c4 {background:var(--m4)}

#review {--m5:#e5d277}
#review #review-result-models .model-c5,.model-c5 {color:var(--m5)}
.weight-bars .model-c5::-webkit-progress-value,.bar-c5 {background:var(--m5)}
#review-groups[style*="--model-count: 6"] .weight-columns,#review-groups[style*="--model-count: 6"] .weight-row {grid-template-columns:minmax(60px,1fr) minmax(20px,.4fr) repeat(6,minmax(42px,1fr));gap:4px;padding-inline:6px}
