*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0c0c14;--surface:rgba(18,18,30,0.85);--glass:rgba(255,255,255,0.04);--glass2:rgba(255,255,255,0.08);--border:rgba(255,255,255,0.07);--text:#e8e8f0;--dim:#777;--accent:#c8a44e;--accent2:#e8c96e;--danger:#e74c3c;--success:#50c878;--sq-light:#f0d9b5;--sq-dark:#b58863}
body.bg-blue{--bg:#0a0e1a}body.bg-green{--bg:#0a140a}body.bg-purple{--bg:#140a1a}body.bg-warm{--bg:#1a140a}
body{font-family:'EB Garamond',serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}

.bg-decoration{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.bg-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.15}
.orb1{width:500px;height:500px;background:#c8a44e;top:-150px;left:-100px}
.orb2{width:400px;height:400px;background:#4a90e2;bottom:-100px;right:-80px}
.orb3{width:300px;height:300px;background:#e94560;top:50%;left:50%;transform:translate(-50%,-50%)}

.app{position:relative;z-index:1;max-width:1300px;margin:0 auto;padding:12px}

header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;margin-bottom:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;backdrop-filter:blur(20px)}
.header-left{display:flex;align-items:center;gap:12px}
.logo-icon{font-size:2rem;color:var(--accent);filter:drop-shadow(0 0 8px rgba(200,164,78,.4))}
.logo-text h1{font-family:'Cinzel',serif;font-size:1.4rem;font-weight:700;color:#fff;letter-spacing:3px}
.logo-sub{font-family:'Cinzel',serif;font-size:.65rem;color:var(--accent);letter-spacing:4px;text-transform:uppercase;display:block;margin-top:-2px}
nav{display:flex;gap:6px}
.nav-btn{background:var(--glass);border:1px solid var(--border);color:var(--dim);padding:8px 14px;border-radius:8px;cursor:pointer;font-family:'EB Garamond',serif;font-size:.85rem;display:flex;align-items:center;gap:5px;transition:all .2s}
.nav-btn:hover{background:var(--glass2);color:#fff}
.nav-btn span{display:none}@media(min-width:700px){.nav-btn span{display:inline}}

.screen{display:none}

.glass-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;backdrop-filter:blur(20px);max-width:460px;margin:40px auto}
.login-card{text-align:center}
.login-icon{font-size:3.5rem;margin-bottom:12px;color:var(--accent)}
.login-card h2{font-family:'Cinzel',serif;font-size:1.6rem;color:#fff;margin-bottom:4px}
.login-desc{color:var(--dim);margin-bottom:24px;font-size:.95rem}
.form-field{display:flex;align-items:center;gap:10px;background:var(--glass);border:1px solid var(--border);border-radius:10px;padding:0 14px;margin-bottom:14px}
.form-field i{color:var(--dim);font-size:.9rem}
.form-field input{flex:1;background:none;border:none;color:var(--text);padding:13px 0;font-family:'EB Garamond',serif;font-size:1rem;outline:none}
.form-field input::placeholder{color:rgba(255,255,255,.25)}
.login-btns{display:flex;gap:10px;margin-top:8px}
.btn{border:none;padding:12px 20px;border-radius:10px;font-family:'EB Garamond',serif;font-size:1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;font-weight:600}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#1a1a2e}
.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn-ghost{background:var(--glass);color:var(--dim);border:1px solid var(--border)}
.btn-ghost:hover{color:#fff;background:var(--glass2)}
.btn-block{flex:1}
.btn-xl{padding:16px 32px;font-size:1.15rem;width:100%;margin-top:8px;border-radius:12px}

.setup-container{max-width:900px;margin:0 auto}
.section-title{font-family:'Cinzel',serif;font-size:1.3rem;color:var(--accent);margin-bottom:16px;display:flex;align-items:center;gap:10px}
.setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:16px}
.setup-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;backdrop-filter:blur(12px)}
.setup-card h3{font-family:'Cinzel',serif;font-size:.85rem;color:var(--accent);margin-bottom:12px;display:flex;align-items:center;gap:8px;letter-spacing:1px;text-transform:uppercase}
.sel{width:100%;padding:10px;background:var(--glass);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:'EB Garamond',serif;font-size:.95rem;cursor:pointer}
.sel option{background:#1a1a2e;color:#ddd}
.sel:focus{outline:none;border-color:var(--accent)}

.color-choice{display:flex;gap:10px;flex-wrap:wrap}
.color-radio{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.9rem;color:var(--dim)}
.color-radio input{display:none}
.color-radio input:checked~*{color:#fff}
.color-box{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:bold}
.white-box{background:#f0d9b5;border:2px solid #b58863;color:#333}
.black-box{background:#555;border:2px solid #888;color:#fff}
.random-box{background:linear-gradient(135deg,#f0d9b5 50%,#555 50%);color:#fff}

.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.theme-btn{height:32px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .15s}
.theme-btn:hover{transform:scale(1.05)}
.theme-btn.active{border-color:var(--accent);box-shadow:0 0 10px rgba(200,164,78,.3)}
.tb-classic{background:linear-gradient(135deg,#f0d9b5 50%,#b58863 50%)}
.tb-wood{background:linear-gradient(135deg,#e8c98e 50%,#a67c52 50%)}
.tb-emerald{background:linear-gradient(135deg,#ffffdd 50%,#86a666 50%)}
.tb-ocean{background:linear-gradient(135deg,#dee3e6 50%,#8ca2ad 50%)}
.tb-coral{background:linear-gradient(135deg,#f5e0d0 50%,#c0785a 50%)}
.tb-ice{background:linear-gradient(135deg,#e8f0f8 50%,#7ba4c4 50%)}
.tb-shadow{background:linear-gradient(135deg,#4a4a5a 50%,#2a2a3a 50%)}
.tb-royal{background:linear-gradient(135deg,#e8d8f0 50%,#8a6aaa 50%)}

.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:.9rem;color:var(--dim)}
.toggle{position:relative;width:40px;height:22px;cursor:pointer}
.toggle input{display:none}
.toggle-slider{position:absolute;inset:0;background:var(--glass);border:1px solid var(--border);border-radius:11px;transition:.2s}
.toggle-slider::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:var(--dim);top:2px;left:2px;transition:.2s}
.toggle input:checked+.toggle-slider{background:rgba(200,164,78,.2);border-color:var(--accent)}
.toggle input:checked+.toggle-slider::after{background:var(--accent);transform:translateX(18px)}

.mini-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.ms{text-align:center;padding:8px;background:var(--glass);border-radius:8px}
.ms-v{display:block;font-family:'JetBrains Mono',monospace;font-size:1.1rem;font-weight:600;color:var(--accent)}
.ms-l{display:block;font-size:.7rem;color:var(--dim);text-transform:uppercase;letter-spacing:1px}

.game-layout{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.board-panel{flex:0 0 auto}
.side-panel{flex:1;min-width:240px;max-width:300px;display:flex;flex-direction:column;gap:10px}

.player-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;backdrop-filter:blur(12px);transition:all .3s}
.player-bar.active{border-color:var(--accent);box-shadow:0 0 15px rgba(200,164,78,.15)}
.pb-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:var(--glass);border:1px solid var(--border)}
.pb-info{flex:1}
.pb-name{display:block;font-size:.85rem;font-weight:600;color:#fff}
.pb-elo{display:block;font-size:.7rem;color:var(--dim);font-family:'JetBrains Mono',monospace}
.pb-timer{font-family:'JetBrains Mono',monospace;font-size:1rem;color:var(--dim);padding:4px 10px;background:var(--glass);border-radius:6px;min-width:60px;text-align:center}
.pb-timer.low{color:var(--danger);animation:pulse-danger 1s infinite}
@keyframes pulse-danger{0%,100%{opacity:1}50%{opacity:.5}}
.pb-captured{font-size:.9rem;display:flex;gap:1px;flex-wrap:wrap;max-width:120px}

.board-frame{display:flex;gap:0;margin:6px 0}
.rank-labels{display:flex;flex-direction:column;justify-content:space-around;padding-right:4px;font-family:'JetBrains Mono',monospace;font-size:.65rem;color:var(--dim);width:14px}
.board-col{display:flex;flex-direction:column}
.file-labels{display:flex;justify-content:space-around;padding-top:3px;font-family:'JetBrains Mono',monospace;font-size:.65rem;color:var(--dim)}

#chessboard{display:grid;grid-template-columns:repeat(8,62px);grid-template-rows:repeat(8,62px);border-radius:4px;box-shadow:0 8px 30px rgba(0,0,0,.5);overflow:hidden}

.t-classic .sq.l{background:#f0d9b5}.t-classic .sq.d{background:#b58863}
.t-wood .sq.l{background:#e8c98e}.t-wood .sq.d{background:#a67c52}
.t-emerald .sq.l{background:#ffffdd}.t-emerald .sq.d{background:#86a666}
.t-ocean .sq.l{background:#dee3e6}.t-ocean .sq.d{background:#8ca2ad}
.t-coral .sq.l{background:#f5e0d0}.t-coral .sq.d{background:#c0785a}
.t-ice .sq.l{background:#e8f0f8}.t-ice .sq.d{background:#7ba4c4}
.t-shadow .sq.l{background:#4a4a5a}.t-shadow .sq.d{background:#2a2a3a}.t-shadow .pc.b{color:#bbb}
.t-royal .sq.l{background:#e8d8f0}.t-royal .sq.d{background:#8a6aaa}

.sq{width:62px;height:62px;display:flex;justify-content:center;align-items:center;font-size:2.5rem;cursor:pointer;position:relative;user-select:none;transition:filter .1s}
.sq:hover{filter:brightness(1.08)}
.sq.sel{background:rgba(130,180,80,.65)!important}
.sq.lm{background:rgba(205,210,106,.55)!important}
.sq.chk{background:radial-gradient(circle,rgba(255,0,0,.55),transparent 70%)!important}
.sq.pm::after{content:'';position:absolute;width:16px;height:16px;background:rgba(0,0,0,.18);border-radius:50%;pointer-events:none}
.sq.pc-target::after{content:'';position:absolute;width:54px;height:54px;border:3px solid rgba(0,0,0,.18);border-radius:50%;box-sizing:border-box;pointer-events:none}

.pc{cursor:grab;line-height:1;filter:drop-shadow(1px 2px 2px rgba(0,0,0,.5));transition:transform .08s}
.pc:hover{transform:scale(1.12)}
.pc.w{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.pc.b{color:#222;text-shadow:none}

.status-bar{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:.8rem;color:var(--dim)}
.status-turn{font-weight:600;color:#fff}
.status-info{color:var(--danger);font-weight:600;font-family:'JetBrains Mono',monospace}
.status-move{font-family:'JetBrains Mono',monospace}

.controls-bar{display:flex;gap:4px;flex-wrap:wrap;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;justify-content:center}
.ctrl{background:var(--glass);border:1px solid var(--border);color:var(--dim);padding:8px 12px;border-radius:6px;cursor:pointer;font-size:.8rem;display:inline-flex;align-items:center;gap:4px;transition:all .15s;font-family:'JetBrains Mono',monospace}
.ctrl:hover{background:var(--glass2);color:#fff}
.ctrl.warn{color:var(--danger)}
.ctrl.warn:hover{background:rgba(231,76,60,.1)}
.ctrl small{font-size:.65rem;background:var(--glass2);padding:1px 5px;border-radius:4px}

.moves-panel{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;min-height:0}
.moves-header{font-family:'Cinzel',serif;font-size:.75rem;color:var(--accent);text-transform:uppercase;letter-spacing:2px;padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:6px}
.moves-list{flex:1;max-height:300px;overflow-y:auto;font-family:'JetBrains Mono',monospace;font-size:.78rem}
.moves-list::-webkit-scrollbar{width:3px}
.moves-list::-webkit-scrollbar-thumb{background:rgba(200,164,78,.3);border-radius:2px}
.mr{display:flex;gap:4px;padding:2px 4px;border-radius:3px}
.mr:nth-child(odd){background:var(--glass)}
.mn{color:#555;min-width:26px}.mw,.mb{min-width:56px;color:var(--dim)}.mw:hover,.mb:hover{color:var(--accent)}

.tutorial-card{max-width:700px}
.tutorial-card h2{font-family:'Cinzel',serif;color:var(--accent);margin-bottom:16px;font-size:1.4rem}
.tut-content h3{color:var(--accent);margin:16px 0 8px;font-family:'Cinzel',serif;font-size:1rem;letter-spacing:1px}
.tut-content ul{list-style:none;padding:0}
.tut-content li{color:#bbb;padding:4px 0 4px 16px;position:relative;line-height:1.5}
.tut-content li::before{content:'▸';position:absolute;left:0;color:var(--accent)}
.tut-content li b{color:var(--accent)}
.piece-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:8px 0}
.pg{background:var(--glass);padding:8px;border-radius:8px;text-align:center}
.pg-icon{font-size:1.6rem;display:block;margin-bottom:2px}
.pg b{display:block;font-size:.8rem;color:var(--accent)}
.pg small{font-size:.7rem;color:var(--dim)}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:2000;backdrop-filter:blur(4px)}
.modal-box{background:#1a1a2e;border:1px solid var(--border);border-radius:16px;padding:24px;text-align:center;min-width:280px}
.modal-box h3{font-family:'Cinzel',serif;color:var(--accent);margin-bottom:16px}
.promo-opts{display:flex;gap:10px;justify-content:center}
.promo-opt{width:60px;height:60px;font-size:2.6rem;display:flex;justify-content:center;align-items:center;background:var(--glass);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s}
.promo-opt:hover{border-color:var(--accent);background:rgba(200,164,78,.1);transform:scale(1.1)}
.go-box{padding:32px 40px}
.go-icon{font-size:3.5rem;margin-bottom:8px}
.go-box h2{font-family:'Cinzel',serif;font-size:1.5rem;color:#fff;margin-bottom:4px}
.go-box p{color:var(--dim);margin-bottom:20px}
.go-btns{display:flex;gap:10px;justify-content:center}

.hint-hl{animation:hintP .8s infinite}
@keyframes hintP{0%,100%{box-shadow:inset 0 0 8px rgba(200,164,78,.5)}50%{box-shadow:inset 0 0 16px rgba(200,164,78,.9)}}

.notification{position:fixed;top:14px;right:14px;padding:10px 18px;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.4);z-index:3000;font-family:'EB Garamond',serif;font-size:.9rem;animation:slideIn .2s ease;max-width:340px}
.notification.success{background:linear-gradient(135deg,#50c878,#3cb371);color:#fff}
.notification.error{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}
.notification.warning{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}
.notification.hint{background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#fff}
.notification.info{background:linear-gradient(135deg,#2c3e50,#1a252f);color:#ddd;border:1px solid var(--border)}
@keyframes slideIn{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes slideOut{from{transform:translateX(0);opacity:1}to{transform:translateX(110%);opacity:0}}

@media(max-width:1000px){.game-layout{flex-direction:column;align-items:center}.side-panel{width:100%;max-width:100%;max-height:260px;flex-direction:row}.moves-panel{flex:1}.controls-bar{flex-wrap:wrap}}
@media(max-width:560px){#chessboard{grid-template-columns:repeat(8,44px);grid-template-rows:repeat(8,44px)}.sq{width:44px;height:44px;font-size:1.8rem}.sq.pm::after{width:12px;height:12px}.sq.pc-target::after{width:38px;height:38px}.app{padding:8px}.promo-opt{width:48px;height:48px;font-size:2rem}}
