/* NextMove — Dark UI with Cyan accent (#00d4ff) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:       #0a0a0f;
  --bg2:      #111118;
  --bg3:      #18181f;
  --bg4:      #20202a;
  --border:   #2a2a3a;
  --text:     #e8e8f0;
  --muted:    #666680;
  --cyan:     #00d4ff;
  --cyan-dim: rgba(0,212,255,.12);
  --cyan-glow:rgba(0,212,255,.25);
  --red:      #ff4757;
  --orange:   #ff6b35;
  --yellow:   #ffd32a;
  --green:    #2ed573;
  --radius:   10px;
  --sidebar:  220px;
}

html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;font-weight:400;display:flex;min-height:100vh;line-height:1.6}

/* ── Auth Modal ──────────────────────────────────────────── */
.auth-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px)}
.auth-overlay.hidden{display:none}
.auth-modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:2.5rem;width:380px;max-width:95vw;box-shadow:0 0 60px rgba(0,212,255,.08)}
.auth-logo{font-size:1.4rem;font-weight:700;text-align:center;margin-bottom:.3rem;letter-spacing:-.02em}
.auth-logo strong{color:var(--cyan)}
.logo-icon{color:var(--cyan);margin-right:.3rem}
.auth-tagline{text-align:center;font-size:.8rem;color:var(--muted);margin-bottom:1.5rem}
.auth-tabs{display:flex;gap:.4rem;margin-bottom:1.5rem}
.auth-tab{flex:1;background:transparent;border:1px solid var(--border);color:var(--muted);padding:.5rem;border-radius:8px;cursor:pointer;font-size:.85rem;font-family:'Inter',sans-serif;transition:all .2s}
.auth-tab:hover{border-color:var(--cyan);color:var(--cyan)}
.auth-tab.active{background:var(--cyan);border-color:var(--cyan);color:#000;font-weight:600}
.auth-panel{display:none;flex-direction:column;gap:.9rem}
.auth-panel.active{display:flex}
.input-group{display:flex;flex-direction:column;gap:.35rem}
.input-group label{font-size:.75rem;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.input-note{font-size:.7rem;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400}
.input-group input,.auth-panel input{background:var(--bg3);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:'Inter',sans-serif;font-size:.95rem;padding:.7rem 1rem;outline:none;transition:border-color .2s;width:100%}
.input-group input:focus,.auth-panel input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-dim)}
.auth-error{color:var(--red);font-size:.82rem;min-height:.9rem}
.auth-skip{background:transparent;border:none;color:var(--muted);font-size:.8rem;cursor:pointer;text-decoration:underline;text-align:center;margin-top:.3rem}
.auth-skip:hover{color:var(--text)}

/* ── Sidebar ─────────────────────────────────────────────── */
.sidebar{width:var(--sidebar);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.2rem 0;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}
.sidebar-logo{font-size:1.15rem;font-weight:700;padding:.8rem 1.3rem 1rem;border-bottom:1px solid var(--border);letter-spacing:-.02em}
.sidebar-logo strong{color:var(--cyan)}
.sidebar-user{display:flex;align-items:center;gap:.7rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}
.user-avatar{width:34px;height:34px;background:var(--cyan);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#000;font-size:.85rem;flex-shrink:0}
.user-name{font-size:.85rem;font-weight:600}
.user-xp-label{font-size:.72rem;color:var(--muted)}
.nav-links{list-style:none;flex:1;padding:.4rem 0}
.nav-link{display:block;padding:.6rem 1.3rem;color:var(--muted);text-decoration:none;font-size:.85rem;transition:all .15s;border-left:2px solid transparent}
.nav-link:hover{color:var(--text);background:var(--bg3)}
.nav-link.active{color:var(--cyan);border-left-color:var(--cyan);background:var(--cyan-dim)}
.sidebar-bottom{padding:.9rem 1.3rem;border-top:1px solid var(--border)}
.xp-row{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-bottom:.35rem}
#xp-count{color:var(--cyan);font-weight:600}
.xp-bar{height:4px;background:var(--bg4);border-radius:2px;overflow:hidden;margin-bottom:.7rem}
.xp-fill{height:100%;background:var(--cyan);border-radius:2px;transition:width .5s ease;width:0%}
.upgrade-btn{width:100%;background:var(--cyan);color:#000;border:none;font-size:.78rem;padding:.45rem;border-radius:6px;cursor:pointer;font-family:'Inter',sans-serif;font-weight:700;transition:all .2s;margin-bottom:.4rem}
.upgrade-btn:hover{background:#1ae0ff;box-shadow:0 2px 12px var(--cyan-glow)}
.home-btn{display:block;text-align:center;background:transparent;border:1px solid var(--border);color:var(--muted);font-size:.75rem;padding:.35rem;border-radius:6px;cursor:pointer;font-family:'Inter',sans-serif;transition:all .2s;text-decoration:none;margin-bottom:.4rem}
.home-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.logout-btn{width:100%;background:transparent;border:1px solid var(--border);color:var(--muted);font-size:.75rem;padding:.35rem;border-radius:6px;cursor:pointer;font-family:'Inter',sans-serif;transition:all .2s}
.logout-btn:hover{border-color:var(--red);color:var(--red)}

/* ── Main ────────────────────────────────────────────────── */
.main-wrap{margin-left:var(--sidebar);flex:1;padding:2rem 2.5rem;max-width:1080px}
.page{display:none}
.page.active{display:block;animation:fadeUp .3s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.page-header{margin-bottom:1.8rem}
.page-header h1{font-size:1.8rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.3rem}
.page-header p{color:var(--muted);font-size:.9rem}

/* ── Cards ───────────────────────────────────────────────── */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.6rem;margin-bottom:1.2rem;position:relative}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--cyan),transparent);border-radius:var(--radius) var(--radius) 0 0}
.card-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:.6rem;font-weight:600}
h2{font-size:1.3rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}
h3{font-size:.9rem;font-weight:600;color:var(--muted);margin-bottom:.7rem}

/* ── Steps ───────────────────────────────────────────────── */
.step-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:.8rem;font-weight:600}
.step-desc{color:var(--muted);font-size:.9rem;margin-bottom:1.2rem}

/* ── Player Select (KEY FEATURE) ─────────────────────────── */
.player-select-row{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.player-btn{flex:1;min-width:160px;background:var(--bg3);border:2px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem;cursor:pointer;text-align:left;transition:all .2s;font-family:'Inter',sans-serif}
.player-btn:hover{border-color:var(--cyan);background:var(--cyan-dim)}
.player-btn.selected{border-color:var(--cyan);background:var(--cyan-dim);box-shadow:0 0 20px var(--cyan-glow)}
.player-btn-color{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem;font-weight:600}
.player-btn-name{font-size:1rem;font-weight:600;color:var(--text)}
.player-btn-elo{font-size:.78rem;color:var(--muted);margin-top:.2rem}
.player-btn.white-btn .player-btn-color{color:#ccc}
.player-btn.black-btn .player-btn-color{color:#888}
.player-btn.selected .player-btn-name{color:var(--cyan)}
.game-info-row{font-size:.8rem;color:var(--muted);margin-bottom:.8rem}
.game-info-row span{margin-right:1.2rem}

/* ── Analysis progress ───────────────────────────────────── */
.analysis-progress{display:flex;align-items:center;gap:1.5rem;padding:.5rem 0}
.analysis-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}
.analysis-title{font-weight:600;font-size:1rem;margin-bottom:.3rem}
.analysis-sub{font-size:.83rem;color:var(--muted)}

/* ── Tabs ────────────────────────────────────────────────── */
.tabs{display:flex;gap:.4rem;margin-bottom:1rem}
.tab{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.4rem 1rem;border-radius:8px;cursor:pointer;font-size:.83rem;font-family:'Inter',sans-serif;transition:all .2s}
.tab:hover{border-color:var(--cyan);color:var(--cyan)}
.tab.active{background:var(--cyan);border-color:var(--cyan);color:#000;font-weight:600}
.tab-panel{display:none}.tab-panel.active{display:block}
textarea{width:100%;height:170px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:'Courier New',monospace;font-size:.8rem;padding:.9rem;resize:vertical;outline:none;transition:border-color .2s}
textarea:focus{border-color:var(--cyan)}
.file-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed var(--border);border-radius:var(--radius);padding:2.5rem;cursor:pointer;transition:all .2s;text-align:center}
.file-drop:hover{border-color:var(--cyan);background:var(--cyan-dim)}
.file-drop input{display:none}
.drop-icon{font-size:1.8rem}.drop-text{color:var(--muted);font-size:.88rem}.drop-name{color:var(--cyan);font-size:.83rem}

/* ── Buttons ─────────────────────────────────────────────── */
.btn-cyan{background:var(--cyan);color:#000;border:none;border-radius:var(--radius);padding:.75rem 1.8rem;font-family:'Inter',sans-serif;font-size:.9rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.7rem;transition:all .2s;width:100%;margin-top:.8rem}
.btn-cyan:hover{background:#1ae0ff;box-shadow:0 4px 20px var(--cyan-glow)}
.btn-cyan:disabled{opacity:.4;cursor:not-allowed}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text);padding:.65rem 1.4rem;border-radius:8px;cursor:pointer;font-size:.85rem;font-family:'Inter',sans-serif;transition:all .2s}
.btn-outline:hover{border-color:var(--cyan);color:var(--cyan)}
.ctrl-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:.5rem 1.1rem;border-radius:8px;cursor:pointer;font-size:.95rem;transition:all .2s;font-family:'Inter',sans-serif}
.ctrl-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:spin .7s linear infinite;display:none}
.spinner.on{display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.error-box{margin-top:.8rem;background:rgba(255,71,87,.08);border:1px solid var(--red);border-radius:8px;padding:.8rem 1rem;color:var(--red);font-size:.85rem}
.hidden{display:none!important}

/* ── Profile ─────────────────────────────────────────────── */
.profile-card{background:linear-gradient(135deg,var(--bg2),#0a0f1a)}
.profile-row{display:flex;gap:1.2rem;align-items:flex-start;margin-top:.5rem}
.profile-icon{width:56px;height:56px;background:var(--cyan);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;box-shadow:0 4px 20px var(--cyan-glow)}
#profile-style{font-size:1.3rem;font-weight:700;letter-spacing:-.02em;color:var(--cyan)}
#profile-desc{color:var(--muted);font-size:.88rem;margin-top:.3rem}
.color-badge{display:inline-block;margin-top:.5rem;padding:.2rem .7rem;border-radius:20px;font-size:.72rem;font-weight:600;letter-spacing:.05em}
.color-badge.white{background:rgba(255,255,255,.1);color:#ddd;border:1px solid #444}
.color-badge.black{background:rgba(0,0,0,.4);color:#aaa;border:1px solid #333}

/* ── Stats ───────────────────────────────────────────────── */
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.2rem}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1rem;text-align:center}
.stat-n{font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1}
.stat-n.red{color:var(--red)}.stat-n.orange{color:var(--orange)}.stat-n.yellow{color:var(--yellow)}.stat-n.cyan{color:var(--cyan)}.stat-n.green{color:var(--green)}
.stat-l{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:.35rem}

/* ── Weaknesses ──────────────────────────────────────────── */
.weakness-item{display:flex;align-items:center;gap:1rem;background:var(--bg3);border-radius:8px;padding:.8rem 1.1rem;border-left:2px solid var(--cyan);margin-bottom:.6rem}
.weakness-item:nth-child(1){border-color:var(--red)}.weakness-item:nth-child(2){border-color:var(--orange)}.weakness-item:nth-child(3){border-color:var(--yellow)}
.weakness-rank{font-size:1.2rem;font-weight:700;color:var(--muted);min-width:24px}
.weakness-info{flex:1}.weakness-name{font-weight:600;font-size:.9rem}.weakness-count{font-size:.76rem;color:var(--muted)}
.weakness-bar-bg{width:90px;height:4px;background:var(--bg);border-radius:2px;overflow:hidden}
.weakness-bar{height:100%;background:var(--cyan);border-radius:2px}
.weakness-item:nth-child(1) .weakness-bar{background:var(--red)}.weakness-item:nth-child(2) .weakness-bar{background:var(--orange)}.weakness-item:nth-child(3) .weakness-bar{background:var(--yellow)}
.divider-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:1.4rem 0 .9rem;padding-top:1.2rem;border-top:1px solid var(--border)}
.phase-row{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}
.phase-label{min-width:150px;font-size:.8rem;color:var(--muted);text-align:right}
.phase-bar-bg{flex:1;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}
.phase-bar-fill{height:100%;border-radius:3px;transition:width .6s}
.phase-bar-fill.opening{background:var(--cyan)}.phase-bar-fill.middlegame{background:var(--yellow)}.phase-bar-fill.endgame{background:var(--green)}
.phase-count{min-width:22px;font-size:.8rem;color:var(--muted)}
.chip-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}
.chip{background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:.28rem .8rem;font-size:.78rem;display:flex;gap:.5rem}
.chip-name{color:var(--muted)}.chip-count{color:var(--cyan);font-weight:600}
.action-row{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.5rem}
.action-row .btn-cyan{width:auto;margin-top:0}

/* ── Replay ──────────────────────────────────────────────── */
.replay-layout{display:grid;grid-template-columns:500px 1fr;gap:1.5rem;align-items:start}
.replay-left{display:flex;flex-direction:column;gap:.8rem}
.replay-controls{display:flex;justify-content:center;gap:.7rem}
.replay-info-box{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.9rem 1.1rem;font-size:.85rem;text-align:center;color:var(--muted);min-height:44px}
.move-list-card{max-height:calc(100vh - 160px);overflow-y:auto}
.move-list{display:flex;flex-direction:column;gap:1px}
.move-row{display:grid;grid-template-columns:26px 1fr 1fr;padding:.3rem .4rem;border-radius:5px;font-size:.8rem;cursor:pointer;transition:background .15s}
.move-row:hover{background:var(--bg3)}
.move-num{color:var(--muted)}.move-san{color:var(--text);padding:0 .2rem;border-radius:3px}
.move-san.blunder{color:var(--red)}.move-san.mistake{color:var(--orange)}.move-san.inaccuracy{color:var(--yellow)}
.move-san.active-move{background:var(--cyan-dim);color:var(--cyan)}

/* ── Two column ──────────────────────────────────────────── */
.two-col{display:grid;grid-template-columns:500px 1fr;gap:1.5rem;align-items:start}
.status-box{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.9rem 1.1rem;text-align:center;font-weight:600;min-height:44px;margin-top:.8rem}
.hint-box{background:var(--cyan-dim);border:1px solid var(--cyan);border-radius:8px;padding:.75rem 1rem;font-size:.85rem;color:var(--cyan);margin-top:.6rem}
.btn-row{display:flex;gap:.7rem;margin-top:.8rem}
.meta-list{display:flex;flex-direction:column;gap:.4rem;font-size:.83rem;color:var(--muted);margin:.5rem 0}
.meta-list span strong{color:var(--text)}
.puzzle-progress{color:var(--muted);font-size:.83rem;margin-top:.7rem}
.xp-flash{background:var(--cyan-dim);border:1px solid var(--cyan);border-radius:8px;padding:.6rem 1rem;text-align:center;font-weight:700;color:var(--cyan);margin-top:.7rem;font-size:1.05rem}
.score-row{display:flex;gap:1rem;margin-top:.7rem}
.score-col{flex:1;text-align:center;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.score-col.green .score-n{color:var(--green)}.score-col.red .score-n{color:var(--red)}
.score-n{font-size:1.9rem;font-weight:700}

/* ── Challenges ──────────────────────────────────────────── */
.challenge-list{display:flex;flex-direction:column;gap:.7rem}
.challenge-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1.1rem;cursor:pointer;transition:all .2s}
.challenge-item:hover,.challenge-item.active{border-color:var(--cyan);background:var(--cyan-dim)}
.ch-title{font-weight:600;font-size:.9rem;margin-bottom:.25rem}
.ch-desc{font-size:.8rem;color:var(--muted)}.ch-xp{font-size:.72rem;color:var(--cyan);margin-top:.35rem}

/* ── Lessons ─────────────────────────────────────────────── */
.lessons-layout{display:grid;grid-template-columns:210px 1fr;gap:1.5rem;align-items:start}
.lessons-sidebar{display:flex;flex-direction:column;gap:.5rem}
.lesson-nav-item{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:.8rem 1rem;cursor:pointer;transition:all .2s;position:relative}
.lesson-nav-item:hover{border-color:var(--cyan)}.lesson-nav-item.active{border-color:var(--cyan);background:var(--cyan-dim)}
.lesson-nav-item.completed::after{content:'✓';position:absolute;top:.7rem;right:.8rem;color:var(--green);font-weight:700}
.lesson-nav-title{font-size:.85rem;font-weight:600}.lesson-nav-tag{font-size:.7rem;color:var(--muted);margin-top:.2rem}
.lesson-content{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;min-height:500px;position:relative}
.lesson-content::before{content:'';display:block;height:1px;background:linear-gradient(90deg,var(--cyan),transparent);margin:-2rem -2rem 1.5rem;border-radius:var(--radius) var(--radius) 0 0}
.lesson-title{font-size:1.5rem;font-weight:700;letter-spacing:-.03em;color:var(--cyan);margin-bottom:.4rem}
.lesson-subtitle{color:var(--muted);font-size:.88rem;margin-bottom:1.4rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}
.lesson-section{margin-bottom:1.4rem}
.lesson-section h3{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:.6rem}
.lesson-section p{color:var(--muted);font-size:.88rem;line-height:1.75;margin-bottom:.6rem}
.lesson-section p strong{color:var(--text)}
.lesson-tip{background:var(--cyan-dim);border-left:2px solid var(--cyan);padding:.75rem 1rem;border-radius:0 8px 8px 0;font-size:.85rem;color:var(--cyan);margin:.7rem 0}
.lesson-warning{background:rgba(255,71,87,.08);border-left:2px solid var(--red);padding:.75rem 1rem;border-radius:0 8px 8px 0;font-size:.85rem;color:var(--red);margin:.7rem 0}
.lesson-steps{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:.6rem;margin:.5rem 0}
.lesson-steps li{counter-increment:step;display:flex;gap:.8rem;font-size:.87rem;color:var(--muted);line-height:1.6}
.lesson-steps li::before{content:counter(step);background:var(--cyan);color:#000;min-width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0;margin-top:.1rem}
.lesson-steps li strong{color:var(--text)}
.lesson-priority-badge{display:inline-block;padding:.18rem .65rem;border-radius:20px;font-size:.7rem;font-weight:600;margin-bottom:.7rem;letter-spacing:.04em}
.lesson-priority-badge.high{background:rgba(255,71,87,.12);color:var(--red)}
.lesson-priority-badge.medium{background:rgba(255,107,53,.12);color:var(--orange)}
.lesson-complete-btn{margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--border)}
.lesson-complete-btn .btn-cyan{width:auto;max-width:280px;margin-top:0}

/* ── Openings ────────────────────────────────────────────── */
.opening-list{display:flex;flex-direction:column;gap:.6rem}
.opening-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1.1rem;cursor:pointer;transition:all .2s}
.opening-item:hover,.opening-item.active{border-color:var(--cyan);background:var(--cyan-dim)}
.op-name{font-weight:600;font-size:.9rem;margin-bottom:.2rem}.op-color{font-size:.72rem;color:var(--muted)}

/* ── Progress ────────────────────────────────────────────── */
.saved-games-list{display:flex;flex-direction:column;gap:.6rem;margin-top:.8rem}
.saved-game-item{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.8rem 1.1rem;display:flex;justify-content:space-between;align-items:center}
.saved-game-info{font-size:.83rem}.saved-game-date{font-size:.73rem;color:var(--muted);margin-top:.15rem}
.load-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.28rem .75rem;border-radius:6px;cursor:pointer;font-size:.76rem;transition:all .2s;font-family:'Inter',sans-serif}
.load-btn:hover{border-color:var(--cyan);color:var(--cyan)}

/* ── Training ────────────────────────────────────────────── */
.training-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem;margin-bottom:1rem;position:relative}
.t-priority{position:absolute;top:1rem;right:1rem;font-size:.67rem;letter-spacing:.08em;text-transform:uppercase;padding:.18rem .55rem;border-radius:20px;font-weight:600}
.t-priority.High{background:rgba(255,71,87,.12);color:var(--red)}.t-priority.Medium{background:rgba(255,107,53,.12);color:var(--orange)}.t-priority.Low{background:rgba(46,213,115,.12);color:var(--green)}
.t-title{font-size:1.05rem;font-weight:700;color:var(--cyan);margin-bottom:.4rem}
.t-desc{font-size:.85rem;color:var(--muted);margin-bottom:.8rem}
.t-drills{list-style:none;display:flex;flex-direction:column;gap:.3rem}
.t-drills li{font-size:.82rem;padding-left:1.1rem;position:relative;color:var(--muted)}
.t-drills li::before{content:'→';position:absolute;left:0;color:var(--cyan)}

/* ── Empty state ─────────────────────────────────────────── */
.empty-state{text-align:center;padding:3.5rem 2rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius)}
.empty-icon{font-size:2.5rem;margin-bottom:.9rem}
.empty-state h3{font-size:1.2rem;font-weight:700;margin-bottom:.5rem}
.empty-state p{color:var(--muted);margin-bottom:1.3rem;font-size:.88rem}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:960px){
  .sidebar{width:56px}.sidebar-logo span:not(.logo-icon),.user-name,.user-xp-label,.sidebar-bottom .xp-label,.logout-btn{display:none}
  .nav-link{padding:.75rem;text-align:center;font-size:1rem;border-left:none;border-bottom:2px solid transparent}
  .nav-link.active{border-bottom-color:var(--cyan)}
  .main-wrap{margin-left:56px;padding:1rem}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .replay-layout,.two-col,.lessons-layout{grid-template-columns:1fr}
}
