:root{--bg:#05070a;--panel:#0b1117;--panel2:#0e161e;--line:#1d2a34;--muted:#71808e;--text:#e8edf1;--cyan:#35cdf4;--gold:#e1b85b;--green:#16d6a0;--red:#ff4d70;--light:#d8c39a;--dark:#52616b}*{box-sizing:border-box}html,body{min-height:100%;margin:0;background:radial-gradient(circle at 48% 35%,#10202b 0,#070b0f 38%,#040609 75%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,a{font:inherit}.chess-shell{width:min(1500px,calc(100% - 32px));margin:26px auto}.chess-topbar{min-height:82px;padding:14px 18px;display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:20px;border:1px solid var(--line);border-radius:12px;background:#090e13e8;box-shadow:0 20px 60px #0008}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid #5c4822;border-radius:9px;background:linear-gradient(135deg,#2a2313,#11161b);color:var(--gold);font-weight:900}.brand strong,.brand small{display:block}.brand strong{font-size:18px}.brand small,.status-card>small,.difficulty-card small,.moves-card small{margin-top:4px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.14em}.discipline{text-align:center}.discipline i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}.discipline span{color:var(--green);font-size:10px;font-weight:900;letter-spacing:.13em}.discipline strong{display:block;margin-top:4px;font-size:13px}.back-link{padding:12px 14px;border:1px solid #2a3b47;border-radius:8px;color:var(--cyan);font-size:10px;font-weight:900;letter-spacing:.08em;text-decoration:none}.back-link:hover{border-color:var(--cyan)}.chess-layout{display:grid;grid-template-columns:minmax(560px,1fr) 390px;gap:16px;margin-top:16px}.board-stage,.control-panel{border:1px solid var(--line);border-radius:12px;background:#080d12e8}.board-stage{padding:18px;display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 140px)}.opponent-bar,.player-bar{width:min(74vh,780px);display:flex;align-items:center;gap:11px;padding:10px 2px}.opponent-bar small,.player-bar small{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.12em}.opponent-bar strong,.player-bar strong{display:block;font-size:13px}.avatar{width:36px;height:36px;display:grid;place-items:center;border:1px solid #2a3a45;border-radius:8px;font-size:23px}.computer{color:#20262b;background:var(--light)}.player{color:white;background:#24313a}.thinking{margin-left:auto;display:flex;align-items:center;gap:5px;color:var(--gold);font-size:9px;font-weight:900;letter-spacing:.1em}.thinking i{width:5px;height:5px;border-radius:50%;background:var(--gold);animation:pulse 1s infinite}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}.thinking span{margin-left:4px}@keyframes pulse{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}.board-frame{position:relative;width:min(74vh,780px);aspect-ratio:1;border:9px solid #111a21;border-radius:9px;box-shadow:0 28px 60px #000b,0 0 0 1px #344751}.chessboard{display:grid;grid-template-columns:repeat(8,1fr);width:100%;height:100%;overflow:hidden}.square{position:relative;display:grid;place-items:center;padding:0;border:0;cursor:pointer;font-family:"Arial Unicode MS","Segoe UI Symbol",serif;font-size:clamp(34px,5.8vh,66px);line-height:1;user-select:none}.square.light{background:#c8b891}.square.dark{background:#4e6069}.square.white-piece{color:#f7f5ee;text-shadow:0 1px 1px #000,0 2px 0 #50606a,0 0 3px #000}.square.black-piece{color:#172027;text-shadow:0 1px 0 #b6c0c5,0 2px 2px #0009}.square.selected{box-shadow:inset 0 0 0 5px #35cdf4cc;background-color:#4c9aad}.square.legal:after{content:"";position:absolute;width:22%;height:22%;border-radius:50%;background:#07151abb;box-shadow:0 0 0 3px #35cdf499}.square.capture:after{content:"";position:absolute;inset:7%;border:5px solid #ffca55d9;border-radius:50%}.square.last{box-shadow:inset 0 0 0 100px #e1b85b2e}.square.in-check{box-shadow:inset 0 0 0 100px #ff335566,0 0 24px #ff3355}.coord{position:absolute;font-family:Inter,sans-serif;font-size:8px;font-weight:900;opacity:.6}.coord.file{right:4px;bottom:3px}.coord.rank{left:4px;top:3px}.dark .coord{color:#d9c99f}.light .coord{color:#4b5a62}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;background:#05080bd9;backdrop-filter:blur(7px);text-align:center}.game-overlay[hidden]{display:none}.game-overlay small{color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.16em}.game-overlay strong{margin-top:7px;font-size:clamp(28px,5vw,52px)}.game-overlay p{max-width:360px;color:#a4b0b9}.game-overlay button{margin-top:10px;padding:12px 24px;border:1px solid var(--cyan);border-radius:7px;background:#0c232b;color:var(--cyan);font-size:11px;font-weight:900}.player-bar #turnBadge{margin-left:auto;padding:7px 9px;border:1px solid #255445;border-radius:6px;color:var(--green);font-size:9px;font-weight:900;letter-spacing:.08em}.control-panel{padding:14px;display:flex;flex-direction:column;gap:10px}.status-card,.difficulty-card,.moves-card,.mindset-card{padding:15px;border:1px solid #1c2a34;border-radius:9px;background:linear-gradient(145deg,#0e161d,#090e13)}.status-card{border-left:3px solid var(--cyan)}.status-card strong{display:block;margin-top:8px;font-size:18px}.status-card p,.difficulty-card>p,.mindset-card p{margin:7px 0 0;color:#8795a0;font-size:12px;line-height:1.5}.difficulty-card header,.moves-card header{display:flex;align-items:center;justify-content:space-between}.difficulty-card header strong,.moves-card header strong{display:block;margin-top:3px;font-size:13px}.difficulty-card header>span{padding:5px 8px;border:1px solid #5c4822;border-radius:5px;color:var(--gold);font-size:9px;font-weight:900}.difficulty-control{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.difficulty-control button{padding:10px 5px;border:1px solid #253541;border-radius:7px;background:#0a1015;color:#96a4af;font-size:10px;font-weight:900}.difficulty-control button small{display:block;margin-top:4px;font-size:8px;letter-spacing:0}.difficulty-control button.active{border-color:var(--gold);background:#211c10;color:var(--gold)}.moves-card{min-height:190px}.moves-card header>span{color:var(--cyan);font-size:18px;font-weight:900}.move-history{height:96px;margin:10px 0;padding:8px;overflow:auto;border:1px solid #17232c;border-radius:6px;background:#070b0f;display:grid;grid-template-columns:repeat(2,1fr);align-content:start;gap:4px 9px}.move-history p{grid-column:1/-1;margin:auto;color:#52606b;font-size:11px}.move-entry{display:flex;gap:6px;color:#aab5bd;font:600 11px/1.5 ui-monospace,monospace}.move-entry b{color:#53626e}.captured{display:flex;justify-content:space-between;min-height:24px;padding-top:7px;border-top:1px solid #18252e;color:#71808e;font-size:9px;font-weight:800}.captured strong{color:#dce3e7;font-family:"Segoe UI Symbol",serif;font-size:15px;letter-spacing:2px}.game-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.game-actions button{min-height:42px;border:1px solid #293a46;border-radius:7px;background:#0d151b;color:#aeb9c1;font-size:10px;font-weight:900}.game-actions button.primary{border-color:#176b73;background:#0b252b;color:var(--cyan)}.game-actions button:disabled{opacity:.35;cursor:not-allowed}.mindset-card{margin-top:auto;border-color:#40351f}.mindset-card>span{color:var(--gold);font-size:9px;font-weight:900;letter-spacing:.13em}.mindset-card>strong{display:block;margin-top:6px}.record{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid #2b281d;color:#7e8c96;font-size:9px;font-weight:800}.record strong{color:var(--gold)}
@media(max-width:1050px){.chess-layout{grid-template-columns:1fr}.board-stage{min-height:auto}.control-panel{display:grid;grid-template-columns:1fr 1fr}.mindset-card{margin:0}.board-frame,.opponent-bar,.player-bar{width:min(82vw,720px)}}
@media(max-width:680px){.chess-shell{width:100%;margin:0}.chess-topbar{grid-template-columns:1fr auto;border-radius:0}.discipline{display:none}.brand{min-width:0}.back-link{padding:10px 8px;font-size:8px}.chess-layout{margin:0;gap:0}.board-stage,.control-panel{border-radius:0;border-left:0;border-right:0}.board-stage{padding:8px}.board-frame,.opponent-bar,.player-bar{width:calc(100vw - 16px)}.board-frame{border-width:5px}.square{font-size:clamp(27px,11vw,50px)}.control-panel{display:flex;padding:10px}.difficulty-control button{font-size:9px}.game-actions{order:-1}}
.market-alert-toast{position:fixed;right:18px;top:18px;z-index:60;width:min(390px,calc(100vw - 28px));padding:15px;border:1px solid #5f4b22;border-left:4px solid var(--gold);border-radius:9px;background:#0b1117f5;box-shadow:0 18px 55px #000b;opacity:0;transform:translateY(-18px);pointer-events:none;transition:.25s}.market-alert-toast.show{opacity:1;transform:none;pointer-events:auto}.market-alert-toast.ready,.market-alert-toast.confluence{border-color:#216d5a;border-left-color:var(--green)}.market-alert-toast small,.market-alert-toast strong{display:block}.market-alert-toast small{color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.1em}.market-alert-toast.ready small,.market-alert-toast.confluence small{color:var(--green)}.market-alert-toast strong{margin-top:7px;font-size:16px}.market-alert-toast p{margin:7px 0 11px;color:#b5c1c8;font-size:13px;line-height:1.45}.market-alert-toast a{display:inline-block;padding:8px 10px;border:1px solid var(--cyan);border-radius:5px;color:var(--cyan);font-size:11px;font-weight:900;text-decoration:none}@media(max-width:520px){.market-alert-toast{right:8px;top:8px;width:calc(100vw - 16px)}}
