.trainer-page{background:#f5f7f3}
.trainer-shell{max-width:930px;margin:0 auto;padding:32px 24px 24px}
.trainer-shell h1{margin:8px 0 12px}
.trainer-lead{max-width:750px;color:#496258;font-size:15px;line-height:1.65;margin:0 0 24px}
.trainer-panel{border:1px solid #dfe8de;border-radius:20px;background:#fff;padding:28px 32px;box-shadow:0 7px 24px #19313708}
.trainer-panel[hidden],.trainer-review[hidden],#trainer-repeat[hidden],#trainer-your-answer[hidden]{display:none}
.trainer-panel h2{font-size:22px;color:#193d30;margin:0 0 10px}
.trainer-panel h3{font-size:15px;color:#244b3b;margin:0 0 11px}
.trainer-panel p{font-size:14px;line-height:1.65;color:#4c6657}
.trainer-field{display:flex;flex-direction:column;gap:7px;max-width:340px;margin:23px 0 16px;font-size:13px;font-weight:700;color:#244c3a}
.trainer-field select{min-height:46px;border:1px solid #cbdccf;border-radius:9px;background:#fff;padding:9px 12px;color:#1e3c32;font:inherit}
.trainer-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 17px;border:1px solid transparent;border-radius:10px;font-family:inherit;font-size:13px;font-weight:650;line-height:1.3;cursor:pointer}
.trainer-primary{background:#173d34;color:#e4f9e7}
.trainer-primary:hover{background:#245343}
.trainer-secondary{background:#f2faf2;color:#23553d;border-color:#b8d6c1}
.trainer-secondary:hover{background:#e7f5e8}
.trainer-button:disabled,.trainer-button[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.trainer-link-button{border:0;background:transparent;color:#27694d;text-decoration:underline;text-underline-offset:3px;min-height:44px;padding:8px 2px;cursor:pointer;font-size:13px;font-weight:650}
.trainer-button:focus-visible,.trainer-link-button:focus-visible,.trainer-card:focus-visible,.trainer-field select:focus-visible{outline:3px solid #318b63;outline-offset:3px}
.trainer-storage-note{font-size:12px!important;max-width:680px;margin-top:18px}
.trainer-last-result{margin:12px 0 4px;font-weight:650}
.trainer-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}
.trainer-topline #trainer-mode{font-size:12px;font-weight:750;color:#41634e}
.trainer-progress{font-size:12px!important;color:#2c6d4b!important;font-weight:750;margin:6px 0 9px}
.trainer-rule{margin:0 0 22px;padding:12px 15px;border-radius:10px;background:#eef7ee;color:#2e5640!important}
.trainer-group{margin:20px 0 23px}
.trainer-cards{display:flex;flex-wrap:wrap;gap:9px}
.trainer-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:58px;min-height:76px;padding:7px 3px;border:1px solid #c9d9cd;border-radius:8px;background:#fff;color:#1a3438;box-shadow:0 2px 0 #e7eee5;cursor:pointer;line-height:1}
.trainer-card.red{color:#a83e3f}
.trainer-card .rank{font-size:21px;font-weight:750}
.trainer-card .suit{font-size:22px}
.trainer-card[aria-pressed="true"]{border:3px solid #237450;background:#e8f6eb;box-shadow:0 0 0 2px #fff inset}
.trainer-card[aria-pressed="true"]::after{content:'✓';position:absolute;right:-6px;top:-7px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#237450;color:#fff;font-size:12px}
.trainer-card:disabled{cursor:default}
.trainer-selected-count{font-weight:750;color:#254b3b!important;margin:8px 0 1px}
.trainer-message{min-height:24px;margin:0 0 9px;color:#875b30!important}
.trainer-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.trainer-review{margin-top:24px;padding:20px;border:1px solid #dce9de;border-radius:14px;background:#f8fbf7}
.trainer-review h3{margin:19px 0 10px}
.trainer-outcome{font-weight:750;color:#1c553b!important;margin:0 0 14px}
.trainer-best-name{margin:0 0 11px;color:#244d38!important;font-weight:750}
.trainer-static-cards .trainer-card{cursor:default}
.trainer-static-cards .trainer-card[aria-pressed="true"]::after{display:none}
.trainer-static-cards .trainer-card{min-height:84px}
.trainer-origin{font-size:10px;white-space:nowrap;margin-top:5px;color:#4d6a58}
.trainer-explanation{margin:17px 0 20px}
.trainer-final-score{font-size:22px!important;color:#204a38!important;font-weight:750;margin:14px 0 5px}
.trainer-storage-status{font-size:12px;color:#745e3d;min-height:18px;margin:12px 0}
.trainer-bottom-note{font-size:12px;color:#536c5c;line-height:1.6}
.trainer-bottom-note a{color:#236f50}
@media(max-width:680px){.trainer-shell{padding:22px 14px}.trainer-panel{padding:22px 18px}.trainer-lead{font-size:14px}.trainer-panel h2{font-size:20px}}
@media(max-width:390px){.trainer-cards{gap:7px}.trainer-card{width:54px;min-height:72px}.trainer-card .rank,.trainer-card .suit{font-size:20px}}
