/* SpeedChess — Academy (hub + Board Vision / coordonate) */
body.ac-page{height:auto!important;min-height:100vh;overflow-y:auto!important;overflow-x:hidden!important}
body.ac-page .shell{height:auto!important;min-height:calc(100vh - var(--topbar-h));overflow:visible!important}

.ac-wrap{
  --ac-gold:#c3a05e; --ac-line:rgba(255,255,255,.08); --ac-green:#6fa83a; --ac-red:#d9534f;
  max-width:1100px;margin:0 auto;padding:26px 20px 90px;width:100%;
}
.ac-card{
  background:linear-gradient(180deg,#22252b,#1a1c21);border:1px solid rgba(195,160,94,.22);border-radius:18px;
  box-shadow:0 24px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06);
}
.ac-head{padding:6px 4px 22px}
.ac-head h1{font-size:30px;font-weight:600;color:#f3f3f3;display:flex;align-items:center;gap:14px}
.ac-head h1 i{color:var(--ac-gold);font-size:26px}
.ac-head p{color:#a9adb3;margin-top:8px;font-size:15px;max-width:640px;line-height:1.5}

/* ---------- Hub ---------- */
.ac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.ac-mod{display:flex;flex-direction:column;gap:14px;padding:24px;text-decoration:none!important;color:inherit;transition:.15s}
.ac-mod:hover{border-color:var(--ac-gold);transform:translateY(-2px)}
.ac-mod .ic{width:54px;height:54px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--ac-gold);
  background:linear-gradient(180deg,#34373d,#25272b);border:1px solid var(--ac-line)}
.ac-mod h2{font-size:20px;color:#f1f1f1;font-weight:600}
.ac-mod p{color:#a9adb3;font-size:14px;line-height:1.5;flex:1}
.ac-mod .go{color:var(--ac-gold);font-weight:700;font-size:14px}

/* ---------- Trainer layout ---------- */
.ac-trainer{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.ac-boardcard{padding:20px}
.ac-timer{height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin-bottom:14px}
.ac-timer i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#c3a05e,#e3c27e);transform-origin:left;transition:none}
.ac-timer.low i{background:linear-gradient(90deg,#d9534f,#ff8a86)}
.ac-boardwrap{position:relative;width:100%;max-width:640px;margin:0 auto}
.ac-board{
  --pl:#ebecd0;--pd:#779556;
  display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);aspect-ratio:1/1;width:100%;
  border-radius:8px;overflow:hidden;box-shadow:0 14px 40px rgba(0,0,0,.55);user-select:none;-webkit-user-select:none;touch-action:manipulation
}
body[class*="board-theme-"] .ac-board{--pl:var(--light-sq);--pd:var(--dark-sq)}
.ac-sq{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer}
.ac-sq.l{background:var(--pl)}.ac-sq.d{background:var(--pd)}
.ac-board.idle .ac-sq,.ac-board.name .ac-sq{cursor:default}
.ac-sq .c{position:absolute;font:700 clamp(9px,1.7vw,14px)/1 "Segoe UI",system-ui,sans-serif;pointer-events:none;opacity:.85}
.ac-sq.l .c{color:var(--pd)}.ac-sq.d .c{color:var(--pl)}
.ac-sq .c.r{top:4%;left:5%}.ac-sq .c.f{bottom:4%;right:6%}
.ac-sq.ok{background:#7fc241!important}
.ac-sq.bad{background:#d9534f!important}
.ac-sq.show{background:#6fa83a!important;box-shadow:inset 0 0 0 4px rgba(255,255,255,.55)}
.ac-sq.target::after{content:'';position:absolute;width:44%;height:44%;border-radius:50%;background:rgba(195,160,94,.95);
  box-shadow:0 0 0 6px rgba(195,160,94,.35);animation:acPulse 1s ease-in-out infinite}
@keyframes acPulse{50%{transform:scale(.85)}}

/* ---------- Right panel ---------- */
.ac-panel{padding:20px;display:flex;flex-direction:column;gap:16px}
.ac-prompt{text-align:center;padding:16px 10px;border-radius:12px;background:rgba(0,0,0,.25);border:1px solid var(--ac-line);min-height:118px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.ac-prompt .lab{font-size:13px;color:#9aa0a8}
.ac-prompt .big{font-size:56px;font-weight:700;line-height:1;color:#fff;letter-spacing:1px}
.ac-prompt .nxt{font-size:13px;color:#8d9299}
.ac-prompt .nxt b{color:#cfd2d6}
.ac-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ac-stat{padding:12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--ac-line);text-align:center}
.ac-stat b{display:block;font-size:26px;color:#fff;font-weight:700}
.ac-stat span{font-size:12px;color:#9aa0a8}
.ac-lab{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:#8d9299;font-weight:700;margin-bottom:6px}
.ac-seg{display:flex;border:1px solid var(--ac-line);border-radius:10px;overflow:hidden}
.ac-seg button{flex:1;padding:10px 6px;background:rgba(255,255,255,.04);border:0;border-left:1px solid var(--ac-line);color:#cfd2d6;
  font:600 13px "Segoe UI",system-ui,sans-serif;cursor:pointer;transition:.15s}
.ac-seg button:first-child{border-left:0}
.ac-seg button:hover:not([disabled]){background:rgba(255,255,255,.09)}
.ac-seg button.on{background:linear-gradient(180deg,#6fa83a,#5b9230);color:#fff}
.ac-seg button[disabled]{opacity:.45;cursor:not-allowed}
.ac-chk{display:flex;align-items:center;gap:10px;font-size:14px;color:#cfd2d6;cursor:pointer}
.ac-chk input{accent-color:var(--ac-gold);width:17px;height:17px}
.ac-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;border-radius:10px;cursor:pointer;
  background:linear-gradient(180deg,#d6b573,#b8934f);border:1px solid #d6b573;color:#1a1710;font:800 16px "Segoe UI",system-ui,sans-serif;transition:.15s}
.ac-btn:hover{filter:brightness(1.08)}
.ac-btn.sec{background:linear-gradient(180deg,#3a3d42,#26282c);border-color:rgba(255,255,255,.14);color:#f0f0f0}
.ac-keys{display:flex;flex-direction:column;gap:8px}
.ac-keys .row{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.ac-keys button{padding:12px 0;border-radius:8px;border:1px solid var(--ac-line);background:linear-gradient(180deg,#34373d,#26282c);color:#fff;font:700 16px "Segoe UI",system-ui,sans-serif;cursor:pointer}
.ac-keys button:hover{border-color:var(--ac-gold)}
.ac-keys button.on{background:var(--ac-gold);color:#1a1710;border-color:var(--ac-gold)}
.ac-keys button[disabled]{opacity:.4;cursor:not-allowed}
.ac-hint{font-size:12px;color:#8d9299;text-align:center}

/* ---------- Results ---------- */
.ac-result{text-align:center;padding:18px 14px;border-radius:12px;border:1px solid rgba(195,160,94,.5);background:rgba(195,160,94,.08)}
.ac-result h3{font-size:22px;color:#fff;margin-bottom:4px}
.ac-result .sc{font-size:46px;font-weight:800;color:var(--ac-gold);line-height:1.1}
.ac-result p{color:#cfd2d6;font-size:14px;margin-top:4px}
.ac-badge{display:inline-block;margin-top:8px;padding:4px 12px;border-radius:99px;background:var(--ac-gold);color:#1a1710;font-weight:800;font-size:12px;letter-spacing:.5px;text-transform:uppercase}
.ac-hist{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#bfc3c8}
.ac-hist div{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:8px;background:rgba(255,255,255,.04)}
.ac-hist span.m{color:#8d9299}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .ac-trainer{grid-template-columns:1fr}
  .ac-wrap{padding:14px 10px 120px}
  .ac-head h1{font-size:24px}
  .ac-prompt .big{font-size:46px}
}

/* ---------- Interactive academy board ---------- */
.ac-playground{display:grid;grid-template-columns:minmax(200px,1fr) minmax(280px,560px);gap:24px;align-items:center;margin-top:34px;padding:22px;border:1px solid rgba(195,160,94,.22);border-radius:18px;background:linear-gradient(180deg,#22252b,#1a1c21);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.ac-play-info h2{font-size:22px;color:#f3f3f3;margin-bottom:8px}
.ac-play-info p{font-size:14px;line-height:1.55;color:#a9adb3;margin:0 0 12px}
.ac-play-info .ac-play-help{font-size:12px;color:#858b94}
.ac-play-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ac-play-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#2b2e34;color:#e5e5e5;font:600 13px system-ui,sans-serif;cursor:pointer}
.ac-play-btn:hover{border-color:#c3a05e;color:#fff;background:#34373d}
.ac-play-status{margin-top:16px;color:#c3a05e;font-weight:700;font-size:14px}
.ac-play-boardwrap{position:relative;width:100%;max-width:560px;aspect-ratio:1;margin:0 auto;touch-action:none;user-select:none;-webkit-user-select:none}
.ac-play-board{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);overflow:hidden;border:2px solid #151515;border-radius:5px;box-shadow:0 14px 40px rgba(0,0,0,.55);touch-action:none}
.ac-play-square{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;cursor:pointer;overflow:visible}
.ac-play-square.light{background:#ebecd0}.ac-play-square.dark{background:#779556}
body[class*="board-theme-"] .ac-play-square.light{background:var(--light-sq,#ebecd0)}
body[class*="board-theme-"] .ac-play-square.dark{background:var(--dark-sq,#779556)}
.ac-play-square.selected{box-shadow:inset 0 0 0 4px rgba(20,85,30,.8)}
.ac-play-square.legal-move:after{content:"";position:absolute;width:28%;height:28%;border-radius:50%;background:rgba(20,30,20,.28);pointer-events:none}
.ac-play-square.legal-capture:after{content:"";position:absolute;inset:3%;border:5px solid rgba(20,85,30,.42);border-radius:50%;pointer-events:none}
.ac-play-square.marked{background:#c5a548!important;box-shadow:inset 0 0 0 4px rgba(90,55,0,.5)}
.ac-play-piece{position:relative;z-index:2;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}
.ac-play-piece img{width:var(--piece-size,100%);height:var(--piece-size,100%);object-fit:contain;pointer-events:none;user-select:none}
.ac-play-piece span{font-size:clamp(24px,6vw,58px);line-height:1}
.ac-play-square.drag-source .ac-play-piece{opacity:.25}
.ac-play-coord{position:absolute;z-index:3;font:700 clamp(8px,1.2vw,11px)/1 system-ui,sans-serif;pointer-events:none;opacity:.85}
.ac-play-rank{left:3px;top:2px}
.ac-play-file{right:3px;bottom:2px}
.ac-play-square.light .ac-play-coord{color:#779556}.ac-play-square.dark .ac-play-coord{color:#ebecd0}
.ac-play-arrows{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}
.ac-piece-ghost{position:fixed;left:0;top:0;z-index:9999;width:min(13vw,74px);height:min(13vw,74px);pointer-events:none;filter:drop-shadow(0 5px 8px rgba(0,0,0,.55))}
.ac-piece-ghost img{width:100%;height:100%;object-fit:contain}
@media(max-width:900px){.ac-playground{grid-template-columns:1fr;padding:16px}.ac-play-info{order:2}.ac-play-boardwrap{order:1;max-width:min(100%,560px)}}
@media(max-width:480px){.ac-playground{padding:10px}.ac-play-board{border-width:1px}.ac-play-square.legal-capture:after{border-width:3px}.ac-play-btn{padding:8px 10px;font-size:12px}}
