/* Report와 핵심 국면이 같은 코치 이름/선택 화살표와 레이팅 표시를 사용한다. */
.ocv-review-coach-avatar-button { appearance: none; -webkit-appearance: none; display: inline-flex; flex: 0 0 auto; width: max-content; height: calc(var(--ocv-u, 1px) * 46); min-width: calc(var(--ocv-u, 1px) * 40); padding: 0; flex-direction: column; align-items: center; justify-content: center; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; cursor: pointer; }
/* 이름의 실제 너비를 유지한다. 고정 너비 안에서 span만 줄면 글자가 화살표 영역으로 넘친다. */
.ocv-review-coach-caption { display: inline-flex; flex: 0 0 auto; width: max-content; gap: calc(var(--ocv-u, 1px) * 3); height: calc(var(--ocv-u, 1px) * 10); padding: 0 calc(var(--ocv-u, 1px) * 2); align-items: center; justify-content: center; box-sizing: border-box; color: #334155; font: 750 calc(var(--ocv-u, 1px) * 10)/calc(var(--ocv-u, 1px) * 10) system-ui, sans-serif; }
.ocv-review-coach-caption > span { flex: 0 0 auto; white-space: nowrap; }
.ocv-review-coach-caption > span[data-fit="compact"] { font-size: calc(var(--ocv-u, 1px) * 9); letter-spacing: -.02em; }
.ocv-review-coach-caption > span[data-fit="tight"] { font-size: calc(var(--ocv-u, 1px) * 8); letter-spacing: -.04em; }
.ocv-review-coach-caption > i { flex: 0 0 auto; font: 900 calc(var(--ocv-u, 1px) * 12)/calc(var(--ocv-u, 1px) * 10) system-ui, sans-serif; }
.ocv-review-coach-avatar-button img { display: block; width: calc(var(--ocv-u, 1px) * 36); height: calc(var(--ocv-u, 1px) * 36); flex: 0 0 calc(var(--ocv-u, 1px) * 36); box-sizing: border-box; border: calc(var(--ocv-u, 1px) * 2) solid #cbd5e1; box-shadow: 0 var(--ocv-u, 1px) calc(var(--ocv-u, 1px) * 3) rgba(15,23,42,.14); object-fit: cover; }
.ocv-review-coach-avatar-button:hover img { border-color: #60a5fa; }
/* 코치(봇) 아바타 공용 규칙(2026-10-02): 모양은 게임 리뷰 코치 버튼의 둥근 사각(8px),
   바탕색은 온라인 접속자 목록의 봇 사진(.pz-photo)과 같다.
   봇 SVG 는 배경이 투명하고 바탕은 사진 자리 CSS 가 준다. 밝은 화면 #eee, 아테나(26)는 은발 대비로
   #64748b, 앱 다크 모드는 #334155 + 테두리 #64748b(app-theme.css 의 .pz-photo 값).
   리뷰 코치 버튼·코치 선택창(핵심 국면·리포트)·전체 설명 팝업·결과창 말풍선이 함께 쓴다. */
.ocv-review-coach-avatar-button img,
.ocv-review-coach-option img,
.ocv-report-coach-option img,
.ocv-review-copy-popup-heading img,
.ocv-coach-invite-coach img { border-radius: calc(var(--ocv-u, 1px) * 8); background-color: #eee; }
.ocv-review-coach-avatar-button img[src*="/flipsight/image/bot/26.svg"],
.ocv-review-coach-option img[src*="/flipsight/image/bot/26.svg"],
.ocv-report-coach-option img[src*="/flipsight/image/bot/26.svg"],
.ocv-review-copy-popup-heading img[src*="/flipsight/image/bot/26.svg"],
.ocv-coach-invite-coach img[src*="/flipsight/image/bot/26.svg"] { background-color: #64748b; }
html.fs-app-theme-dark .ocv-review-coach-avatar-button img,
html.fs-app-theme-dark .ocv-review-coach-option img,
html.fs-app-theme-dark .ocv-report-coach-option img,
html.fs-app-theme-dark .ocv-review-copy-popup-heading img,
html.fs-app-theme-dark .ocv-coach-invite-coach img { border-color: #64748b; background-color: #334155; }
.ocv-review-coach-avatar-button:focus-visible { outline: calc(var(--ocv-u, 1px) * 2) solid #2563eb; outline-offset: calc(var(--ocv-u, 1px) * 2); }
.ocv-review-coach-option-copy { flex: 1 1 auto; min-width: 0; }
.ocv-review-coach-option-heading { display: flex; align-items: baseline; justify-content: space-between; gap: calc(var(--ocv-u, 1px) * 4); min-width: 0; width: 100%; }
.ocv-review-coach-option-heading > strong { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ocv-review-coach-option-heading > .ocv-review-coach-rating { flex: 0 0 auto; font-size: calc(var(--ocv-u, 1px) * 11); font-weight: 450; font-variant-numeric: tabular-nums; line-height: 1.2; white-space: nowrap; }
.ocv-review-coach-rating.pz-rt-red { color: #e53935; }
.ocv-review-coach-rating.pz-rt-orange { color: #fb8c00; }
.ocv-review-coach-rating.pz-rt-purple { color: #8e24aa; }
.ocv-review-coach-rating.pz-rt-blue { color: #1e88e5; }
.ocv-review-coach-rating.pz-rt-green { color: #43a047; }
html.fs-app-theme-dark .ocv-review-coach-avatar-button img, body.fs-app-theme-dark .ocv-review-coach-avatar-button img { border-color: #64748b; background-color: #334155; box-shadow: 0 var(--ocv-u, 1px) calc(var(--ocv-u, 1px) * 4) rgba(0,0,0,.5); }
html.fs-app-theme-dark .ocv-review-coach-avatar-button:hover img, body.fs-app-theme-dark .ocv-review-coach-avatar-button:hover img { border-color: #60a5fa; }
html.fs-app-theme-dark .ocv-review-coach-caption, body.fs-app-theme-dark .ocv-review-coach-caption { color: #e2e8f0; }
html.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-red, body.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-red { color: #ef5b5b; }
html.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-orange, body.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-orange { color: #fb923c; }
html.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-purple, body.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-purple { color: #c084fc; }
html.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-blue, body.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-blue { color: #60a5fa; }
html.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-green, body.fs-app-theme-dark .ocv-review-coach-rating.pz-rt-green { color: #4ade80; }
@media (max-width: 520px) and (pointer: coarse) {
  .ocv-review-coach-avatar-button { height: calc(var(--ocv-u, 1px) * 54); min-width: calc(var(--ocv-u, 1px) * 48); }
  .ocv-review-coach-caption { height: calc(var(--ocv-u, 1px) * 13); padding-right: calc(var(--ocv-u, 1px) * 3); padding-left: calc(var(--ocv-u, 1px) * 3); font-size: calc(var(--ocv-u, 1px) * 11); line-height: calc(var(--ocv-u, 1px) * 13); }
  .ocv-review-coach-caption > span[data-fit="compact"] { font-size: calc(var(--ocv-u, 1px) * 10); }
  .ocv-review-coach-caption > span[data-fit="tight"] { font-size: calc(var(--ocv-u, 1px) * 9); }
  .ocv-review-coach-caption > i { font-size: calc(var(--ocv-u, 1px) * 14); line-height: calc(var(--ocv-u, 1px) * 13); }
  .ocv-review-coach-avatar-button img { width: calc(var(--ocv-u, 1px) * 41); height: calc(var(--ocv-u, 1px) * 41); flex-basis: calc(var(--ocv-u, 1px) * 41); }
}
/* Personal dojo state: scoped to selectors, never added to public game/player photos. */
.ocv-review-coach-option,.ocv-report-coach-option,.oc-dojo-bot { position: relative; }
.oc-dojo-star { position: absolute; left: calc(var(--ocv-u, 1px) * 3); top: calc(50% + calc(var(--ocv-u, 1px) * 4)); color: #f5b800; font: 900 calc(var(--ocv-u, 1px) * 20)/1 system-ui,sans-serif; text-shadow: 0 var(--ocv-u, 1px) calc(var(--ocv-u, 1px) * 2) #713f12, 0 0 calc(var(--ocv-u, 1px) * 2) #fff; pointer-events: none; }
.oc-dojo-locked > img,.oc-dojo-locked > .ocv-review-coach-option-copy { opacity: .45; }
.oc-dojo-locked { cursor: pointer; }
.oc-dojo-dialog { position: fixed; inset: 0; z-index: 2147483646; display: flex; align-items: center; justify-content: center; padding: max(calc(var(--ocv-u, 1px) * 12),env(safe-area-inset-top)) calc(var(--ocv-u, 1px) * 12) max(calc(var(--ocv-u, 1px) * 12),env(safe-area-inset-bottom)); box-sizing: border-box; background: rgba(15,23,42,.55); color: #172033; font: calc(var(--ocv-u, 1px) * 15)/1.5 system-ui,sans-serif; }
.oc-dojo-card { min-width: 0; max-width: 100%; flex: 0 1 auto; width: min(calc(var(--ocv-u, 1px) * 440),100%); max-height: 88dvh; box-sizing: border-box; border: var(--ocv-u, 1px) solid #cbd5e1; border-radius: calc(var(--ocv-u, 1px) * 16); padding: calc(var(--ocv-u, 1px) * 18); background: #fff; box-shadow: 0 calc(var(--ocv-u, 1px) * 12) calc(var(--ocv-u, 1px) * 40) #0005; overflow: auto; overscroll-behavior: contain; }
.oc-dojo-card p { margin: 0 0 calc(var(--ocv-u, 1px) * 14); }
.oc-dojo-card button { font: inherit; cursor: pointer; }
.oc-dojo-actions { display: flex; gap: calc(var(--ocv-u, 1px) * 8); justify-content: flex-end; flex-wrap: wrap; }
.oc-dojo-actions button { border: var(--ocv-u, 1px) solid #cbd5e1; border-radius: calc(var(--ocv-u, 1px) * 9); padding: calc(var(--ocv-u, 1px) * 8) calc(var(--ocv-u, 1px) * 14); background: #f1f5f9; color: #172033; }
.oc-dojo-actions button:last-child { background: #2563eb; color: #fff; border-color: #2563eb; }
.oc-dojo-heading { display: flex; align-items: center; justify-content: space-between; gap: calc(var(--ocv-u, 1px) * 12); margin-bottom: calc(var(--ocv-u, 1px) * 12); }
.oc-dojo-heading h2 { margin: 0; font-size: calc(var(--ocv-u, 1px) * 19); line-height: 1.3; }
.oc-dojo-heading h2 { display: flex; align-items: center; flex-wrap: wrap; gap: calc(var(--ocv-u, 1px) * 4) calc(var(--ocv-u, 1px) * 8); }
.oc-dojo-master { display: inline-flex; align-items: center; gap: calc(var(--ocv-u, 1px) * 3); padding: calc(var(--ocv-u, 1px) * 2) calc(var(--ocv-u, 1px) * 8) calc(var(--ocv-u, 1px) * 2) calc(var(--ocv-u, 1px) * 6); border: var(--ocv-u, 1px) solid #d4a017; border-radius: calc(var(--ocv-u, 1px) * 999); background: #fff8d8; color: #8a6200; font-size: calc(var(--ocv-u, 1px) * 12); font-weight: 700; line-height: 1.4; white-space: nowrap; }
.oc-dojo-master svg { width: calc(var(--ocv-u, 1px) * 14); height: calc(var(--ocv-u, 1px) * 14); fill: #d4a017; }
.oc-dojo-heading button { border: 0; padding: 0 calc(var(--ocv-u, 1px) * 8); font-size: calc(var(--ocv-u, 1px) * 26); background: transparent; color: inherit; }
/* 봇 목록 카드는 복기 코치 선택(ocviewer.css .ocv-review-coach-option)과 같은 크기·글자(2026-10-03). */
.oc-dojo-bots { width: min(calc(var(--ocv-u, 1px) * 520),100%); padding: calc(var(--ocv-u, 1px) * 16) calc(var(--ocv-u, 1px) * 10) calc(var(--ocv-u, 1px) * 10); }
.oc-dojo-bots .oc-dojo-heading { padding: 0 calc(var(--ocv-u, 1px) * 8); }
.oc-dojo-bot-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: calc(var(--ocv-u, 1px) * 8); }
.oc-dojo-bot { display: grid; grid-template-columns: calc(var(--ocv-u, 1px) * 44) minmax(0,1fr); align-items: center; gap: calc(var(--ocv-u, 1px) * 7); min-width: 0; min-height: calc(var(--ocv-u, 1px) * 58); box-sizing: border-box; border: var(--ocv-u, 1px) solid #dbe4ef; border-radius: calc(var(--ocv-u, 1px) * 11); padding: calc(var(--ocv-u, 1px) * 5); overflow: hidden; text-align: left; background: #fff; color: #172033; }
.oc-dojo-bot-avatar { position: relative; width: calc(var(--ocv-u, 1px) * 44); height: calc(var(--ocv-u, 1px) * 44); }
.oc-dojo-bot-avatar .oc-dojo-star { top: auto; left: calc(var(--ocv-u, 1px) * -4); bottom: calc(var(--ocv-u, 1px) * -4); font-size: calc(var(--ocv-u, 1px) * 23); }
.oc-dojo-bot img { display: block; width: calc(var(--ocv-u, 1px) * 44); height: calc(var(--ocv-u, 1px) * 44); flex: 0 0 calc(var(--ocv-u, 1px) * 44); box-sizing: border-box; border: var(--ocv-u, 1px) solid #e2e8f0; border-radius: calc(var(--ocv-u, 1px) * 8); background: #eee; object-fit: cover; }
.oc-dojo-bot img[src*="/26.svg"] { background: #64748b; }
.oc-dojo-bot-copy { display: flex; min-width: 0; flex-direction: column; gap: calc(var(--ocv-u, 1px) * 2); }
.oc-dojo-bot-heading { display: flex; align-items: baseline; justify-content: space-between; gap: calc(var(--ocv-u, 1px) * 4); min-width: 0; width: 100%; }
.oc-dojo-bot-name { flex: 1 1 auto; min-width: 0; overflow: hidden; font-size: calc(var(--ocv-u, 1px) * 13); line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.oc-dojo-bot-rating { flex: 0 0 auto; color: #64748b; font-size: calc(var(--ocv-u, 1px) * 11); font-weight: 450; font-variant-numeric: tabular-nums; line-height: 1.2; white-space: nowrap; }
.oc-dojo-bot-persona { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: #64748b; font-size: calc(var(--ocv-u, 1px) * 10); line-height: 1.2; }
.oc-dojo-bot-earned { background: #fff8d8; border-color: #d4a017; }
.oc-dojo-bot.oc-dojo-bot-selected { border-color: #2563eb; box-shadow: 0 0 0 var(--ocv-u, 1px) #2563eb; }
.oc-dojo-card .oc-dojo-guest-note { margin: calc(var(--ocv-u, 1px) * 14) 0 0; color: #64748b; font-size: calc(var(--ocv-u, 1px) * 12); }
/* The result card has a dark surface in both themes; only the earned star is gold. */
.oc-dojo-achievement { display: grid; grid-template-columns: calc(var(--ocv-u, 1px) * 16) minmax(0,1fr); gap: calc(var(--ocv-u, 1px) * 7); width: 100%; box-sizing: border-box; padding: calc(var(--ocv-u, 1px) * 10); margin: calc(var(--ocv-u, 1px) * 10) 0; border: var(--ocv-u, 1px) solid rgba(255,255,255,.16); border-radius: calc(var(--ocv-u, 1px) * 6); background: rgba(255,255,255,.05); color: #e5e7eb; font: inherit; font-weight: 500; line-height: 1.5; }
.oc-dojo-achievement-star { color: #facc15; font-size: calc(var(--ocv-u, 1px) * 16); line-height: 1.25; }
.oc-dojo-achievement-text { min-width: 0; overflow-wrap: anywhere; }
.oc-dojo-achievement button { grid-column: 2; justify-self: start; max-width: 100%; padding: calc(var(--ocv-u, 1px) * 5) calc(var(--ocv-u, 1px) * 10); border: var(--ocv-u, 1px) solid rgba(255,255,255,.34); border-radius: calc(var(--ocv-u, 1px) * 6); background: rgba(255,255,255,.08); color: #fff; font: inherit; font-weight: 600; line-height: 1.3; cursor: pointer; }
.oc-dojo-achievement button:hover:not(:disabled) { background: rgba(255,255,255,.16); }
.oc-dojo-achievement button:focus-visible { outline: calc(var(--ocv-u, 1px) * 2) solid #5eead4; outline-offset: calc(var(--ocv-u, 1px) * 2); }
.oc-dojo-achievement button:disabled { opacity: .5; cursor: default; }
.oc-dojo-selected-bot { margin-bottom: calc(var(--ocv-u, 1px) * 16); border-color: #2563eb; }
/* 게임 설정 팝업의 선택한 봇 카드는 목록 카드를 줄이기 전 크기 그대로(2026-10-03 사용자 요청). */
.oc-dojo-bot.oc-dojo-selected-bot { gap: calc(var(--ocv-u, 1px) * 9); min-height: 0; border-width: calc(var(--ocv-u, 1px) * 2); border-radius: calc(var(--ocv-u, 1px) * 10); padding: calc(var(--ocv-u, 1px) * 10); }
.oc-dojo-bot.oc-dojo-selected-bot:not(.oc-dojo-bot-earned) { background: #f8fafc; }
.oc-dojo-selected-bot img { border: 0; }
.oc-dojo-selected-bot .oc-dojo-bot-copy { gap: 0; line-height: 1.3; }
.oc-dojo-selected-bot .oc-dojo-bot-heading { gap: calc(var(--ocv-u, 1px) * 6); }
.oc-dojo-selected-bot .oc-dojo-bot-name { font-size: calc(var(--ocv-u, 1px) * 15); font-weight: 750; line-height: 1.3; }
.oc-dojo-selected-bot .oc-dojo-bot-rating { font-size: calc(var(--ocv-u, 1px) * 13); line-height: 1.3; }
.oc-dojo-selected-bot .oc-dojo-bot-persona { margin-top: calc(var(--ocv-u, 1px) * 3); font-size: calc(var(--ocv-u, 1px) * 12); line-height: 1.35; }
.oc-dojo-game-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: calc(var(--ocv-u, 1px) * 12); margin-bottom: calc(var(--ocv-u, 1px) * 16); }
.oc-dojo-game-options label { display: flex; flex-direction: column; gap: calc(var(--ocv-u, 1px) * 6); min-width: 0; font-size: calc(var(--ocv-u, 1px) * 13); font-weight: 600; }
.oc-dojo-game-options select { width: 100%; min-width: 0; min-height: calc(var(--ocv-u, 1px) * 40); box-sizing: border-box; padding: calc(var(--ocv-u, 1px) * 7) calc(var(--ocv-u, 1px) * 9); border: var(--ocv-u, 1px) solid #cbd5e1; border-radius: calc(var(--ocv-u, 1px) * 8); background: #f8fafc; color: #172033; font: inherit; font-size: calc(var(--ocv-u, 1px) * 15); }
.oc-dojo-game-options select:focus-visible { outline: calc(var(--ocv-u, 1px) * 2) solid #60a5fa; outline-offset: calc(var(--ocv-u, 1px) * 2); }
.oc-dojo-card .oc-dojo-game-note { margin: 0 0 calc(var(--ocv-u, 1px) * 16); color: #64748b; font-size: calc(var(--ocv-u, 1px) * 13); }
html.fs-app-theme-dark .oc-dojo-card { background: #111827; color: #e2e8f0; border-color: #475569; }
html.fs-app-theme-dark .oc-dojo-actions button { background: #1e293b; color: #e2e8f0; border-color: #475569; }
html.fs-app-theme-dark .oc-dojo-bot { border-color: #334155; background: #17243a; color: #f1f5f9; }
html.fs-app-theme-dark .oc-dojo-bot img { border-color: #64748b; }
html.fs-app-theme-dark .oc-dojo-actions button:last-child { background: #2563eb; border-color: #2563eb; }
html.fs-app-theme-dark .oc-dojo-bot img { background: #334155; }
html.fs-app-theme-dark .oc-dojo-bot-rating,html.fs-app-theme-dark .oc-dojo-bot-persona,html.fs-app-theme-dark .oc-dojo-guest-note { color: #a9b8cb; }
html.fs-app-theme-dark .oc-dojo-bot-earned { background: #4a3808; border-color: #facc15; }
html.fs-app-theme-dark .oc-dojo-master { background: #4a3808; border-color: #facc15; color: #facc15; }
html.fs-app-theme-dark .oc-dojo-master svg { fill: #facc15; }
html.fs-app-theme-dark .oc-dojo-bot.oc-dojo-bot-selected { border-color: #60a5fa; box-shadow: 0 0 0 var(--ocv-u, 1px) #60a5fa; }
html.fs-app-theme-dark .oc-dojo-achievement { background: var(--fs-app-surface-2,#1c2635); color: var(--fs-app-text,#f1f5f9); border-color: var(--fs-app-border,#3a414c); }
html.fs-app-theme-dark .oc-dojo-achievement button { background: var(--fs-app-surface-3,#253247); border-color: #526174; color: #f1f5f9; }
html.fs-app-theme-dark .oc-dojo-achievement button:hover:not(:disabled) { background: #334155; }
html.fs-app-theme-dark .oc-dojo-game-options select { background: #1e293b; border-color: #475569; color: #e2e8f0; color-scheme: dark; }
html.fs-app-theme-dark .oc-dojo-selected-bot { border-color: #60a5fa; }
html.fs-app-theme-dark .oc-dojo-bot.oc-dojo-selected-bot:not(.oc-dojo-bot-earned) { background: #1e293b; }
html.fs-app-theme-dark .oc-dojo-card .oc-dojo-game-note { color: #a9b8cb; }
.oc-dojo-card button:focus-visible { outline: calc(var(--ocv-u, 1px) * 2) solid #60a5fa; outline-offset: calc(var(--ocv-u, 1px) * 2); }
.oc-dojo-heading button:focus,.oc-dojo-heading button:focus-visible { outline: none; box-shadow: none; }
@media (max-width: 359px) { .oc-dojo-bot-list { grid-template-columns: 1fr; } }
