/* v4.12.0 · A clear task, a consistent action area, and a route back to practice. */
#screen[data-academy-game="roulette"], [data-review-game="roulette"] { --journey-accent:#80baff; --journey-rgb:128,186,255; }
#screen[data-academy-game="holdem"], [data-review-game="holdem"] { --journey-accent:#ff9b9d; --journey-rgb:255,155,157; }
#screen[data-academy-game="blackjack"], [data-review-game="blackjack"] { --journey-accent:#88dfae; --journey-rgb:136,223,174; }
#screen[data-academy-game="baccarat"], [data-review-game="baccarat"] { --journey-accent:#f7d776; --journey-rgb:247,215,118; }
body.academy-practice-active #screen .academy-current-task {
  position:relative;
  flex-wrap:wrap;
  border-left:3px solid var(--journey-accent,#dfc487);
  padding-left:10px;
  text-wrap:pretty;
}
body.academy-practice-active #screen .academy-current-task::before {
  content:attr(data-task-label);
  display:block;
  flex-basis:100%;
  grid-column:1 / -1;
  color:var(--journey-accent,#dfc487);
  font-size:11px;
  font-weight:800;
  line-height:1.5;
  letter-spacing:.06em;
  margin:0 0 3px;
}
body.academy-practice-active #screen .academy-action-area {
  outline:1px solid rgba(var(--journey-rgb,223,196,135),.36);
  outline-offset:-1px;
  border-radius:12px;
}
body.academy-practice-active #screen .academy-action-area :is(button,input):focus-visible {
  outline:3px solid var(--journey-accent,#dfc487);
  outline-offset:2px;
}
body.academy-practice-active #screen .academy-step-status { color:var(--journey-accent,#dfc487); }
body.academy-practice-active #screen .academy-instruction-panel {
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:var(--journey-accent,#dfc487) transparent;
}
body.academy-practice-active #screen .academy-instruction-panel > :is(p,.rf-task) {
  font-size:14px;
  line-height:1.6;
  color:#f0eee9;
}
body.academy-practice-active #screen .academy-instruction-panel > h1 { font-size:clamp(16px,2.2vw,23px); line-height:1.35; }
body.academy-practice-active #screen .academy-instruction-panel > * { flex-shrink:0; }
body.academy-practice-active #screen .academy-practice-help {
  position:relative;
  flex:0 0 36px;
  width:36px; height:36px; min-width:36px; min-height:36px;
  margin-left:auto;
  align-self:center;
  padding:0;
}
body.academy-practice-active #screen .roulette-training-top {
  gap:8px;
  grid-template-columns:auto minmax(0,1fr) auto 36px;
  min-height:40px;
  flex-basis:40px;
}

/* Result pages must scroll even for LABs with a fixed-height landscape table. */
body.academy-result-active[class] {
  position:relative!important;
  height:auto!important;
  min-height:100dvh!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
body.academy-result-active[class] .app-shell,
body.academy-result-active[class] #screen {
  position:relative!important;
  inset:auto!important;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  overflow:visible!important;
}
body.academy-result-active[class] #screen { padding-bottom:max(24px,env(safe-area-inset-bottom))!important; }
body.academy-result-active[class] .roulette-result-screen {
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}
body.academy-result-active[class] .roulette-result-main {
  display:flex!important;
  flex-direction:column;
  flex:0 0 auto;
  gap:14px;
  height:auto;
  min-height:0;
  overflow:visible!important;
  padding-top:12px;
}
body.academy-result-active[class] .roulette-result-main > * { flex-shrink:0; }
body.academy-result-active[class] .roulette-result-hero { min-height:165px;padding:20px; }
body.academy-result-active[class] .roulette-result-hero strong { font-size:56px; }
body.academy-result-active[class] .roulette-result-hero :is(span,small) { font-size:13px;line-height:1.5; }
body.academy-result-active[class] .roulette-result-grid { min-height:72px; }
body.academy-result-active[class] .roulette-result-grid b { font-size:22px; }
body.academy-result-active[class] .roulette-result-grid :is(span,small) { font-size:11px;line-height:1.5; }
body.academy-result-active[class] .roulette-result-review { overflow:visible; }
body.academy-result-active[class] .roulette-result-review :is(small,b,span,p) { font-size:12px;line-height:1.6; }
body.academy-result-active[class] .roulette-result-actions button { min-height:44px;font-size:13px!important; }
:where(.academy-session-review) {
  --journey-accent:#dfc487;
  --journey-rgb:223,196,135;
}
.academy-session-review {
  width:100%;max-width:960px;
  box-sizing:border-box;
  margin:18px auto;
  padding:clamp(16px,3vw,26px);
  border:1px solid rgba(var(--journey-rgb),.34);
  border-radius:20px;
  background:radial-gradient(ellipse at 0 0,rgba(var(--journey-rgb),.09),transparent 60%),linear-gradient(145deg,#161b23,#0e121a);
  color:#f6f2e9;
  text-align:left;
  overflow:hidden;
  animation:journey-review-enter .35s ease-out both;
}
.academy-review-header { display:flex;align-items:center;gap:12px;margin-bottom:16px; }
.academy-review-header > span { flex:0 0 44px; }
.academy-review-header .academy-icon { width:44px;height:44px; }
.academy-review-header small { font-size:10px;letter-spacing:.18em;color:var(--journey-accent); }
.academy-review-header h2 { margin:5px 0 7px;font-size:clamp(18px,3vw,23px);line-height:1.5; }
.academy-review-header p { margin:0;color:#c5cbd6;font-size:13px;line-height:1.6; }
.academy-review-details { border-block:1px solid #ffffff12; }
.academy-review-details + .academy-review-details { border-top:0; }
.academy-review-details summary { padding:16px 4px;font-size:14px;line-height:1.5;font-weight:700;color:var(--journey-accent);cursor:pointer;min-height:44px;box-sizing:border-box; }
.academy-review-details summary:focus-visible { outline:2px solid var(--journey-accent);outline-offset:-2px; }
.academy-review-list { list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px; }
.academy-review-item,.academy-issue-list li { padding:14px;border-radius:12px;background:#ffffff06;border:1px solid #ffffff0b; }
.academy-review-item-top { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;font-size:12px;color:#c5cbd6; }
.academy-review-item-top span { color:#ffb7b7; }
.academy-review-context { font-size:14px;line-height:1.6;margin:9px 0;overflow-wrap:anywhere; }
.academy-review-comparison { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0; }
.academy-review-comparison > div { padding:10px;border-radius:8px;background:#0003;min-width:0; }
.academy-review-comparison dt { font-size:11px;color:#c5cbd6;line-height:1.5; }
.academy-review-comparison dd { margin:6px 0 0;font-size:15px;font-weight:700;line-height:1.6;overflow-wrap:anywhere; }
.academy-review-comparison > div:last-child dd { color:var(--journey-accent); }
.academy-review-explanation,.academy-issue-list p { margin:10px 0 0;font-size:14px;line-height:1.8;color:#e7e7e9;overflow-wrap:anywhere; }
.academy-issue-list b { font-size:12px;color:var(--journey-accent); }
.academy-review-checkpoint { margin:16px 0;padding:14px;border-left:2px solid var(--journey-accent);background:rgba(var(--journey-rgb),.05); }
.academy-review-checkpoint > b { color:var(--journey-accent);font-size:12px; }
.academy-review-checkpoint p { font-size:14px;line-height:1.8;margin:8px 0 0; }
.academy-review-lessons h3 { font-size:14px;margin:20px 0 10px; }
.academy-review-lessons button { width:100%;min-height:58px;display:flex;align-items:center;gap:10px;padding:10px 12px;margin:6px 0;border-radius:10px;border:1px solid #ffffff15;background:#ffffff04;color:#f6f2e9;text-align:left;cursor:pointer; }
.academy-review-lessons button:hover { background:rgba(var(--journey-rgb),.09);border-color:rgba(var(--journey-rgb),.4); }
.academy-review-lessons button > span { flex:0 0 28px; }
.academy-review-lessons .academy-icon { width:28px;height:28px; }
.academy-review-lessons button b { flex:1;font-size:13px;line-height:1.6; }
.academy-review-lessons button small { flex-shrink:0;color:var(--journey-accent);font-size:11px; }
.academy-review-retry { width:100%;min-height:48px;margin-top:16px;font-size:14px;line-height:1.5;white-space:normal; }
.academy-lesson-return { display:grid;gap:10px;border:1px solid #dfc48755;border-radius:12px;padding:16px;margin:16px 0;background:#dfc48708; }
.academy-lesson-return small { color:#dfc487;font-size:12px; }
.academy-lesson-return b { font-size:16px;line-height:1.5; }
.academy-lesson-return button { min-height:48px;white-space:normal; }
@keyframes journey-review-enter { from { opacity:0;transform:translateY(5px); } to { opacity:1;transform:translateY(0); } }
@media(max-width:380px) {
  .academy-review-comparison { grid-template-columns:1fr; }
  .academy-review-header { gap:8px; }
  .academy-review-header > span { flex-basis:32px; }
  .academy-review-header .academy-icon { width:32px;height:32px; }
}
@media(prefers-reduced-motion:reduce) { .academy-session-review { animation:none; } }

/* v4.13.0 · Personal shortcuts and a durable, readable review notebook. */
:is(.academy-favorite-tile,.academy-favorite-games button,.academy-note).roulette { --journey-accent:#80baff;--journey-rgb:128,186,255; }
:is(.academy-favorite-tile,.academy-favorite-games button,.academy-note).holdem { --journey-accent:#ff9b9d;--journey-rgb:255,155,157; }
:is(.academy-favorite-tile,.academy-favorite-games button,.academy-note).blackjack { --journey-accent:#88dfae;--journey-rgb:136,223,174; }
:is(.academy-favorite-tile,.academy-favorite-games button,.academy-note).baccarat { --journey-accent:#f7d776;--journey-rgb:247,215,118; }
.academy-favorites-home { margin:16px 0; }
.academy-favorites-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px; }
.academy-favorites-heading > b { color:#dfc487;font-size:13px;letter-spacing:.04em; }
.academy-favorites-heading > button { min-height:40px;padding:6px 10px;border:1px solid #dfc48744;border-radius:9px;background:#dfc48708;color:#ecddb9;font-size:12px;cursor:pointer; }
.academy-favorite-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
.academy-favorite-tile { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:110px;padding:12px 8px;border:1px solid rgba(var(--journey-rgb),.32);border-radius:14px;background:linear-gradient(150deg,rgba(var(--journey-rgb),.09),#111923);color:#f7f2e7;text-align:center;cursor:pointer;transition:border-color .2s,background .2s; }
.academy-favorite-tile .academy-icon { width:36px;height:36px;flex-shrink:0; }
.academy-favorite-tile b { font-size:12px;line-height:1.5;overflow-wrap:anywhere; }
.academy-favorite-tile small { font-size:10px;line-height:1.4;color:var(--journey-accent); }
.academy-favorite-tile:hover { border-color:var(--journey-accent);background:rgba(var(--journey-rgb),.13); }
.academy-favorite-empty { width:100%;min-height:56px;padding:10px 14px;display:flex;align-items:center;gap:12px;border:1px dashed #dfc48744;border-radius:12px;background:#dfc48704;color:#d2c5a5;cursor:pointer; }
.academy-favorite-empty .academy-icon { width:30px;height:30px;flex-shrink:0; }
.academy-favorite-empty span { flex:1;font-size:13px;text-align:left;line-height:1.6; }
.academy-favorite-empty b { font-size:22px; }
.academy-favorites-modal { width:min(600px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow-y:auto;padding:20px;box-sizing:border-box;background:linear-gradient(150deg,#1a2029,#10151d);color:#f2ede2;border:1px solid #dfc48755;border-radius:20px; }
.academy-favorites-modal-head { display:flex;align-items:flex-start;justify-content:space-between;gap:10px; }
.academy-favorites-modal-head small { font-size:10px;letter-spacing:.13em;color:#dfc487; }
.academy-favorites-modal-head h2 { font-size:22px;line-height:1.5;margin:7px 0; }
.academy-favorites-modal > p { font-size:14px;line-height:1.8;color:#c4cbd6;margin:8px 0 16px; }
.academy-favorites-close { display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #dfc48755;border-radius:12px;background:#dfc4870b;cursor:pointer; }
.academy-favorites-close .academy-icon { width:24px;height:24px; }
.academy-favorite-order { margin:0 0 16px;padding:0;list-style:none;display:grid;gap:8px; }
.academy-favorite-order li { display:grid;grid-template-columns:18px minmax(0,1fr) 40px 40px 40px;align-items:center;gap:5px;padding:8px;background:#ffffff05;border:1px solid #ffffff0e;border-radius:10px; }
.academy-favorite-order li > span { color:#dfc487;font-size:13px; }
.academy-favorite-order li > b { font-size:12px;line-height:1.5; }
.academy-favorite-order button { display:grid;place-items:center;width:40px;min-height:40px;border:1px solid #dfc48733;border-radius:8px;background:#dfc48708;color:#ecddb9;font-size:18px;cursor:pointer; }
.academy-favorite-order button:disabled { opacity:.3;cursor:default; }
.academy-favorite-order .academy-icon { width:20px;height:20px; }
.academy-favorite-games { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0; }
.academy-favorite-games button { display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;min-height:72px;padding:8px 3px;border:1px solid #ffffff13;border-radius:10px;background:#ffffff03;color:#d0d5dc;cursor:pointer; }
.academy-favorite-games .academy-icon { width:30px;height:30px; }
.academy-favorite-games span { font-size:10px;line-height:1.3;text-align:center; }
.academy-favorite-games button[aria-pressed="true"] { border-color:var(--journey-accent);background:rgba(var(--journey-rgb),.1);color:var(--journey-accent); }
.academy-favorite-options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.academy-favorite-options button { min-height:80px;display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:5px;padding:10px;border:1px solid #ffffff17;border-radius:10px;background:#ffffff04;color:#f2ede2;text-align:left;cursor:pointer; }
.academy-favorite-options button small { grid-column:1;font-size:10px;color:#a8b4c4; }
.academy-favorite-options button b { grid-column:1;font-size:13px;line-height:1.6; }
.academy-favorite-options button span { grid-column:2;grid-row:1/3;font-size:22px;color:#dfc487;text-align:center; }
.academy-favorite-options button[aria-pressed="true"] { border-color:#dfc48788;background:#dfc4870c; }
.academy-favorites-done { width:100%;min-height:48px;margin-top:16px; }
.academy-favorite-toggle { width:100%;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-top:9px;border:1px solid #dfc48744;border-radius:10px;background:#dfc48706;color:#dfc487;font-size:13px;cursor:pointer; }
.academy-favorite-toggle .academy-icon { width:24px;height:24px; }
.academy-favorite-toggle[aria-pressed="true"] { background:#dfc48716; }

.academy-notebook-link { width:100%;display:flex;align-items:center;gap:12px;margin:14px 0;padding:14px;border:1px solid #dfc48744;border-radius:14px;background:linear-gradient(125deg,#dfc4870b,#101722);color:#f2ede2;text-align:left;cursor:pointer; }
.academy-notebook-link > .academy-icon { width:36px;height:36px;flex-shrink:0; }
.academy-notebook-link > span { flex:1;min-width:0;display:grid;gap:5px; }
.academy-notebook-link b { font-size:16px;line-height:1.5; }
.academy-notebook-link small { font-size:11px;line-height:1.6;color:#bdc6d2; }
.academy-notebook-link > strong { color:#dfc487;font-size:12px;white-space:nowrap; }
.academy-notebook-link > em { font-size:24px;font-style:normal;color:#dfc487; }
.academy-notebook-head { display:flex;justify-content:space-between;align-items:flex-start;gap:14px; }
.academy-notebook-head small { color:#dfc487;letter-spacing:.12em;font-size:10px; }
.academy-notebook-head h2 { font-size:24px;margin:7px 0; }
.academy-notebook-head p { color:#c4cbd6;font-size:14px;line-height:1.8;margin:8px 0 16px; }
.academy-notebook-head .btn { flex-shrink:0;font-size:12px;min-height:44px; }
.academy-notebook-filters { display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;margin:10px 0; }
.academy-note-status-tabs { display:flex;gap:6px; }
.academy-note-status-tabs button { min-height:44px;padding:8px 12px;border:1px solid #ffffff1a;border-radius:9px;background:#ffffff03;color:#cbd2df;font-size:12px;cursor:pointer; }
.academy-note-status-tabs button[aria-pressed="true"] { border-color:#dfc48788;background:#dfc48710;color:#efd7a1; }
.academy-notebook-filters label { display:flex;align-items:center;gap:8px;color:#c4cbd6;font-size:12px; }
.academy-notebook-filters select { min-height:44px;max-width:220px;background:#18212f;border:1px solid #ffffff26;border-radius:8px;padding:6px 10px;color:#f2ede2;font-size:14px; }
.academy-notebook-capacity { color:#a6b3c4;font-size:11px;line-height:1.7;margin:12px 0; }
.academy-notebook-list { display:grid;gap:12px; }
.academy-note { border:1px solid rgba(var(--journey-rgb),.3);border-radius:16px;background:linear-gradient(135deg,rgba(var(--journey-rgb),.04),#101722);color:#f2ede2;overflow:hidden; }
.academy-note > summary { display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none;min-height:76px;position:relative; }
.academy-note > summary::-webkit-details-marker { display:none; }
.academy-note > summary::after { content:'＋';font-size:20px;color:var(--journey-accent); }
.academy-note[open] > summary::after { content:'−'; }
.academy-note > summary > .academy-icon { width:34px;height:34px;flex-shrink:0; }
.academy-note > summary > span { display:grid;gap:5px;min-width:0;flex:1; }
.academy-note > summary small { font-size:10px;line-height:1.5;color:#b5c1d2; }
.academy-note > summary b { font-size:15px;line-height:1.5; }
.academy-note > summary em { font-style:normal;color:#aab8cb;font-size:11px; }
.academy-note > summary > strong { font-size:11px;color:var(--journey-accent);line-height:1.5; }
.academy-note > summary > strong.practised { color:#96d8af; }
.academy-note-body { padding:0 16px 16px; }
.academy-note-practised { font-size:12px;color:#96d8af; }
.academy-note-lessons { display:flex;flex-wrap:wrap;gap:8px;margin-top:12px; }
.academy-note-lessons .btn { min-height:44px;display:flex;align-items:center;gap:8px;text-align:left;white-space:normal;line-height:1.6;font-size:13px; }
.academy-note-lessons .academy-icon { width:24px;height:24px;flex-shrink:0; }
.academy-note-reopen { width:100%;min-height:44px;margin-top:8px;border:0;background:transparent;color:#b9c7d6;font-size:12px;text-decoration:underline;cursor:pointer; }
.academy-notebook-empty { padding:32px 18px;text-align:center;border:1px solid #dfc48733;border-radius:16px;background:#dfc48704; }
.academy-notebook-empty > .academy-icon { width:48px;height:48px; }
.academy-notebook-empty h3 { font-size:17px;margin:12px 0; }
.academy-notebook-empty p { font-size:14px;line-height:1.8;color:#bbc5d3;margin:10px 0 20px; }
.academy-notebook-saved { width:100%;min-height:44px;margin:8px 0 14px;padding:10px;border:1px solid #8bdfae44;border-radius:10px;background:#8bdfae08;color:#9de1b7;font-size:13px;line-height:1.5;cursor:pointer; }
.academy-comparison { margin-top:14px;padding:12px;border-radius:10px;border:1px solid #ffffff13;background:#0002;color:#d4dbe5; }
.academy-comparison small { display:block;font-size:10px;line-height:1.6; }
.academy-comparison > div { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:7px; }
.academy-comparison span { font-size:13px;line-height:1.6; }
.academy-comparison strong { font-size:13px;color:#cbd2df; }
.academy-comparison strong.up { color:#99dfb2; }
.academy-comparison strong.down { color:#f4aaa6; }
.academy-comparison em { display:block;font-style:normal;font-size:11px;line-height:1.6;color:#aeb9c9;margin-top:6px; }
.academy-comparison.empty { color:#98a8bf;font-size:10px;line-height:1.7; }
.my-exam-record.roulette,.my-breakdown-card.roulette { border-color:#80baff55;background:linear-gradient(135deg,#80baff0b,#101722); }
.my-exam-record.roulette .my-exam-record-icon { color:#80baff; }
.my-exam-record.roulette .my-exam-record-icon .academy-icon { width:36px;height:36px; }
.exam-pass-card.roulette { border-color:#80baff99;background:radial-gradient(ellipse at top,#163350,#0b1421 75%); }
.exam-pass-card.roulette .exam-pass-card-game h3 { color:#80baff; }
:is(.academy-favorites-home,.academy-favorites-modal,.academy-notebook,.academy-detail) button:focus-visible,
.academy-note > summary:focus-visible { outline:2px solid #efd79f;outline-offset:3px; }
@media(max-width:480px) {
  .academy-notebook-head { flex-direction:column;gap:4px; }
  .academy-note > summary { gap:8px;padding:13px 32px 13px 10px;flex-wrap:wrap; }
  .academy-note > summary > strong { flex-basis:100%;padding-left:42px; }
  .academy-note > summary::after { display:block;position:absolute;right:12px;top:14px; }
  .academy-favorites-modal { padding:16px 12px; }
  .academy-favorite-order li { grid-template-columns:14px minmax(0,1fr) 36px 36px 36px;gap:4px;padding:7px 5px; }
  .academy-favorite-order button { width:36px;min-height:40px; }
}
@media(prefers-reduced-motion:reduce) { .academy-favorite-tile { transition:none; } }
