.cg-wrap{box-sizing:content-box;position:relative;display:block}cg-container{position:absolute;width:100%;height:100%;display:block;top:0}cg-board{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:0;background-size:cover}.cg-wrap.manipulable cg-board{cursor:pointer}cg-board square{position:absolute;top:0;left:0;width:12.5%;height:12.5%;pointer-events:none}cg-board square.move-dest{pointer-events:auto}cg-board square.last-move{will-change:transform}.cg-wrap piece{position:absolute;top:0;left:0;width:12.5%;height:12.5%;background-size:cover;z-index:2;will-change:transform;pointer-events:none}cg-board piece.dragging{cursor:move;z-index:11!important}piece.anim{z-index:8}piece.fading{z-index:1;opacity:.5}.cg-wrap piece.ghost{opacity:.3}.cg-wrap piece svg{overflow:hidden;position:relative;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.6}.cg-wrap cg-auto-pieces,.cg-wrap .cg-shapes,.cg-wrap .cg-custom-svgs{overflow:visible;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{overflow:hidden;opacity:.6;z-index:2}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg{overflow:visible}.cg-wrap coords{position:absolute;display:flex;pointer-events:none;opacity:.8;font-family:sans-serif;font-size:9px}.cg-wrap coords.ranks{left:4px;top:-20px;flex-flow:column-reverse;height:100%;width:12px}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{left:-15px;align-items:flex-end}.cg-wrap coords.files{bottom:-4px;left:24px;flex-flow:row;width:100%;height:16px;text-transform:uppercase;text-align:center}.cg-wrap coords.files.black{flex-flow:row-reverse}.cg-wrap coords coord{flex:1 1 auto}.cg-wrap coords.ranks coord{transform:translateY(39%)}.cg-wrap coords.squares{bottom:0;left:0;text-transform:uppercase;text-align:right;flex-flow:column-reverse;height:100%;width:12.5%}.cg-wrap coords.squares.black{flex-flow:column}.cg-wrap coords.squares.left{text-align:left}.cg-wrap coords.squares coord{padding:6% 4%}.cg-wrap coords.squares.rank2{transform:translate(100%)}.cg-wrap coords.squares.rank3{transform:translate(200%)}.cg-wrap coords.squares.rank4{transform:translate(300%)}.cg-wrap coords.squares.rank5{transform:translate(400%)}.cg-wrap coords.squares.rank6{transform:translate(500%)}.cg-wrap coords.squares.rank7{transform:translate(600%)}.cg-wrap coords.squares.rank8{transform:translate(700%)}.cg-board-wrap{width:100%;box-shadow:0 2px 10px #00000080}.blue .cg-board{background-image:url(https://lichess1.org/assets/_0p7U2f/images/board/svg/blue.svg);background-size:cover}.merida .cg-piece{background-size:cover}.merida .cg-piece.white.pawn{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/wP.svg)}.merida .cg-piece.white.knight{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/wN.svg)}.merida .cg-piece.white.bishop{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/wB.svg)}.merida .cg-piece.white.rook{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/wR.svg)}.merida .cg-piece.white.queen{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/wQ.svg)}.merida .cg-piece.white.king{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/wK.svg)}.merida .cg-piece.black.pawn{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/bP.svg)}.merida .cg-piece.black.knight{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/bN.svg)}.merida .cg-piece.black.bishop{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/bB.svg)}.merida .cg-piece.black.rook{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/bR.svg)}.merida .cg-piece.black.queen{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/bQ.svg)}.merida .cg-piece.black.king{background-image:url(https://lichess1.org/assets/_0p7U2f/piece/merida/bK.svg)}@font-face{font-family:lichess;font-display:block;src:url(./assets/font/lichess.woff2) format("woff2")}[data-icon]:before{content:attr(data-icon);font-family:lichess!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{margin:0;padding:0;height:100dvh;width:100vw;font-family:Noto Sans,Lucida Grande,sans-serif;overflow:hidden;background:#161512;color:#bababa}#app{display:flex;height:100%;width:100%}body.not-logged-in #sidebar-pane,body.not-logged-in #left-pane>:not(.editor-toolbar),body.not-logged-in #right-pane,body.not-logged-in #resizer{display:none!important}body.not-logged-in #left-pane{flex:1!important;justify-content:center;align-items:center;background:radial-gradient(circle at center,#1e1c1a,#161512)}#cv-auth-container{position:fixed;top:0;left:0;width:100vw;height:100dvh;background:#1a1a1a;display:flex;justify-content:center;align-items:center;z-index:2000000}#cv-login-card{background:#2c2c2c;padding:2.5rem;border-radius:12px;box-shadow:0 10px 25px #00000080;width:100%;max-width:360px;text-align:center;color:#fff}#cv-login-card h2{margin-bottom:2rem;font-weight:300;letter-spacing:1px}#cv-login-form{display:flex;flex-direction:column;gap:1rem}#cv-login-form input{padding:.8rem;border-radius:6px;border:1px solid #444;background:#333;color:#fff;font-size:1rem}#cv-login-form button{padding:.8rem;border-radius:6px;border:none;background:#03a9f4;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s}#cv-login-form button:hover{background:#0288d1}.pane{flex:1;display:flex;flex-direction:column;overflow:auto}#sidebar-pane{flex:0 0 250px;background:#1e1c1a;border-right:1px solid #333;padding:10px;display:flex;flex-direction:column;transition:all .2s ease;overflow:hidden}#sidebar-pane.collapsed{flex:0 0 0;padding:0;border-right:none}#left-pane{flex:1;border-right:1px solid #333;padding:10px;display:flex;flex-direction:column}.editor-toolbar{display:flex;gap:10px;padding-bottom:10px}.editor-toolbar button{background:#333;color:#bababa;border:1px solid #4d4d4d;padding:5px 10px;cursor:pointer;border-radius:3px}.editor-toolbar button:hover{background:#4a9ff5;color:#fff}.dropdown{position:relative;display:inline-block}.dropbtn{font-family:inherit;font-size:14px;cursor:pointer}.dropdown-content{display:none;position:absolute;background-color:#2b2927;min-width:160px;box-shadow:0 8px 16px #00000080;z-index:1000;border:1px solid #4d4d4d;border-radius:4px;top:100%}.dropdown-content button{color:#bababa;padding:8px 12px;text-decoration:none;display:block;width:100%;text-align:left;border:none!important;background:none!important;border-radius:0!important}.dropdown-content button:hover{background-color:#4a9ff5!important;color:#fff!important}.dropdown:hover .dropdown-content{display:block}:root{--editor-height: 50%;--tools-width: 400px;--tools-height: 450px;--board-scale-x: 1;--board-scale-y: 1}.md-editor{width:100%;height:var(--editor-height);flex-shrink:0;background:#2b2927;color:#bababa;border:1px solid #4d4d4d;resize:none;font-family:monospace;padding:10px;box-sizing:border-box;transition:height .3s ease}.md-editor.collapsed{display:none}.md-viewer{flex:1;padding-top:20px;overflow:auto}.fen-link{background:#3692e7;color:#fff;border:none;border-radius:3px;padding:2px 5px;cursor:pointer;margin:2px}.fen-link:hover{background:#4a9ff5}.fen-box{cursor:pointer;transition:opacity .2s}.fen-box:hover{opacity:.8}#resizer{flex:0 0 5px;background-color:#333;cursor:col-resize;z-index:10;transition:background-color .2s}#resizer:hover,#resizer.active{background-color:#4a9ff5}.event-box{display:inline-block;width:fit-content;background-color:#007aff;color:#fff;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:700;margin-bottom:5px;cursor:pointer;transition:all .2s;border:none}.event-box:hover{opacity:.8}.event-box.no-export{background-color:#ffebee!important;color:#c62828!important;border:1px solid #ffcdd2!important}.event-box.no-export:hover{background-color:#ffcdd2!important}#right-pane{background:#161512;flex:1;min-width:0}.analyse{display:flex;height:100%;width:100%;align-items:center;justify-content:center;gap:20px;overflow:hidden;min-width:0}.analyse--vertical{flex-direction:column;overflow-y:auto;justify-content:flex-start;padding:10px 0}.analyse--vertical .cg-board-wrap{max-width:min(100%,calc(100dvh - var(--tools-height) - 50px));width:95%;margin-bottom:10px}.analyse--vertical .analyse__tools{width:95%;height:var(--tools-height);min-height:200px;max-height:80dvh}.cg-board-wrap{width:100%;max-width:calc(100dvh - 40px);aspect-ratio:1 / 1;flex-shrink:1;min-width:0;min-height:0}.cg-wrap square.check{background:radial-gradient(ellipse at center,red,#f000 80%)}.analyse__tools{width:var(--tools-width);height:100%;max-height:calc(100dvh - 40px);background:#262421;display:flex;flex-direction:column;overflow:hidden;transform:scale(var(--board-scale-x),var(--board-scale-y));transform-origin:center center}.tview2{flex:1;overflow-y:auto;padding:0;background:#2b2927;border-bottom:1px solid #3d3b39;font-size:15px;line-height:1.6;white-space:normal;-webkit-user-select:none;user-select:none}.tview2-inline{display:block;padding:7px 3px 7px 7px}.tview2-inline .mainline{font-weight:700}.tview2 move{display:inline-block;cursor:pointer;padding:.25em .17em;border-radius:3px;white-space:nowrap;font-size:13px;color:#bababa;margin-inline-end:2px}.tview2 move:hover{background:#ffffff14}.tview2 move.active{background:#3692e7;color:#fff;border-radius:3px}.tview2 move.mainline{font-weight:600}.tview2 move index{font-size:90%;color:#9a9a9a;padding-inline-end:.2em;line-height:111.11%}.tview2 san{display:inline}.tview2 interrupt{display:inline}.tview2 lines{display:inline}.tview2 line{display:block}#analyse-cm{-webkit-user-select:none;user-select:none}#analyse-cm .action:hover{background:#3692e7;color:#fff!important}#analyse-cm .action span{font-size:1.2em;vertical-align:middle}.tview2 line:before{content:"(";color:#787878;font-size:.9em}.tview2 line:after{content:") ";color:#787878;font-size:.9em}.tview2 line move{color:#a0a0a0}.tview2 line move:hover{color:#d0d0d0;background:#ffffff0f}.tview2 line move.active{color:#fff;background:#3692e7}.tview2 line line move{color:#888;font-size:.95em}.ceval-wrap{flex-shrink:0;width:100%;box-sizing:border-box}.ceval{position:relative;display:flex;column-gap:6px;align-items:stretch;padding-top:3px;background:#262421;width:100%;box-sizing:border-box}.ceval .cmn-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 40px;margin-inline-start:6px}.cmn-toggle input{position:absolute;opacity:0;width:0;height:0}.cmn-toggle label{display:block;position:relative;cursor:pointer;outline:none;padding:1px;width:40px;height:24px;border:1px solid #3d3b39;border-radius:24px;background-clip:padding-box;background-color:#4d4d4d;box-shadow:inset 0 1px 3px #0000004d;transition:background .2s ease,box-shadow .2s ease}.cmn-toggle label:after{display:block;position:absolute;content:"";width:20px;height:20px;bottom:1px;left:1px;border-radius:100%;background:linear-gradient(to bottom,#7a7a7a,#5a5a5a);box-shadow:0 1px 3px #0006,0 0 1px #ffffff1a inset;transition:margin .2s ease,box-shadow .2s ease,background .2s ease}.cmn-toggle input:checked+label{background-color:#629924;box-shadow:inset 0 1px 3px #0003,0 0 6px #6299244d}.cmn-toggle input:checked+label:after{margin-inline-start:16px;background:linear-gradient(to bottom,#ccc,#aaa);box-shadow:0 1px 3px #0000004d,0 0 1px #fff3 inset}.cmn-toggle input:focus-visible:not(:disabled)+label{box-shadow:0 0 8px #62992480;border-color:#629924}.ceval pearl{flex:1 0 auto;line-height:38px;font-size:1.6em;text-align:center;font-weight:700;color:#e0e0e0}.ceval pearl i{display:inline-block}.ceval pearl i.ddloader{width:20px;height:20px;border:2px solid #555;border-top-color:#bababa;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ceval .engine{flex:2 1 auto;font-size:12px;line-height:16px;margin-top:3px;color:#8c8c8c;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ceval .engine span{font-weight:700;color:#bababa}.ceval .engine .technology{margin-inline-start:5px;font-weight:400;font-size:11px}.ceval .engine .technology.good{color:#629924}.ceval .engine .info{display:block;white-space:nowrap;font-weight:400;color:#8c8c8c}.ceval .bar{position:absolute;width:100%;height:3px;top:0;left:0}.ceval .bar span{display:block;height:3px;width:0;background:#629924;transition:width 1s}.ceval__gear{flex:0 0 auto;background:none;border:none;color:#8c8c8c;font-size:18px;cursor:pointer;padding:4px 8px;line-height:38px;transition:color .15s ease}.ceval__gear:hover,.ceval__gear.active{color:#bababa}#ceval-settings-anchor{position:relative}#ceval-settings{position:absolute;right:0;top:0;z-index:100;min-width:220px;background:#1f1e1c;border:1px solid #3d3b39;border-radius:4px;padding:12px 16px;box-shadow:0 4px 16px #00000080}#ceval-settings .setting{margin-bottom:12px}#ceval-settings .setting:last-child{margin-bottom:0}#ceval-settings .setting label{display:block;font-size:13px;color:#bababa;margin-bottom:6px;-webkit-user-select:none;user-select:none}#ceval-settings .setting input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:#3d3b39;border-radius:3px;outline:none;cursor:pointer}#ceval-settings .setting input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(to bottom,#aaa,#888);border:1px solid #555;box-shadow:0 1px 3px #0000004d;cursor:pointer}#ceval-settings .setting input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(to bottom,#aaa,#888);border:1px solid #555;box-shadow:0 1px 3px #0000004d;cursor:pointer}#ceval-settings .range_value{text-align:right;font-size:12px;color:#8c8c8c;margin-top:4px}.pv_box{position:relative;background:#262421;font-size:13px}.pv_box .pv{position:relative;display:flex;flex-wrap:wrap;line-height:2em;border-top:1px solid #3d3b39;padding-inline-end:14px;min-height:2em}.pv_box .pv.pv--nowrap{display:block;flex-wrap:initial;height:2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pv_box .pv strong{display:inline-block;width:34px;text-align:center;color:#bababa;font-size:13px}.pv_box .pv span{margin-inline-start:4px;color:#8c8c8c;cursor:default}.pv_box .pv span.pv-san{cursor:pointer;color:#bababa}.pv_box .pv span.pv-san:hover{color:#3692e7}.pv_box .pv[data-uci]:hover{background:#3692e71a;cursor:pointer}.analyse__controls{padding:10px;background:#1e1c1a;display:flex;justify-content:center;flex-shrink:0}.jumps{display:flex;gap:2px}.fbt.move{background:#333;color:#bababa;border:none;border-radius:3px;padding:8px 12px;font-family:monospace;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .2s}.fbt.move:hover{background:#4a9ff5;color:#fff}.fbt.move.disabled{opacity:.3;cursor:not-allowed}.fbt.move.disabled:hover{background:#333;color:#bababa}#promotion-choice{pointer-events:all}#promotion-choice .promotion-shade{position:absolute;top:0;left:0;width:100%;height:100%;background:#0006;z-index:99}#promotion-choice square{background:#14551e80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200}#promotion-choice square:hover{background:#14551ed9}.analyse__moves{flex:1;overflow-y:auto;min-height:60px}.copyables{padding:8px 10px;background:#262421;border-top:1px solid #3d3b39}.copyables .pair{display:flex;flex-direction:column;margin-bottom:8px}.copyables .pair:last-child{margin-bottom:0}.copyables .name{color:#9a9a9a;font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.copyables input.copyable,.copyables textarea.copyable{background:#1a1917;color:#bababa;border:1px solid #3d3b39;border-radius:3px;padding:6px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;width:100%;box-sizing:border-box;outline:none;transition:border-color .15s}.copyables input.copyable:focus,.copyables textarea.copyable:focus{border-color:#629924}.copyables input.copyable:invalid{border-color:#c33}.copyables textarea.copyable{resize:vertical;min-height:60px;line-height:1.5}.copyables .input-row{display:flex;gap:4px}.copyables .input-row input.copyable{flex:1}.btn-load{background:#629924;color:#fff;border:none;border-radius:3px;padding:4px 10px;cursor:pointer;font-size:13px;white-space:nowrap;transition:background .15s}.btn-load:hover{background:#76b02a}.btn-load-pgn{margin-top:6px;width:100%;padding:6px 0}.copyables__header{display:flex;align-items:center;padding:6px 10px;background:#2b2926;border-bottom:1px solid #3d3b39;-webkit-user-select:none;user-select:none}.copyables__toggle{background:none;border:none;color:#9a9a9a;cursor:pointer;font-size:11px;padding:0 6px 0 0;line-height:1}.copyables__title{color:#bababa;font-size:12px;font-weight:600;cursor:pointer;flex:1}.copyables__actions{display:flex;gap:4px}.copyables__gear,.copyables__hide{background:none;border:none;color:#777;cursor:pointer;font-size:14px;padding:0 4px;line-height:1;transition:color .15s}.copyables__gear:hover,.copyables__hide:hover{color:#ccc}.copyables__settings{padding:8px 10px;background:#1e1d1b;border-bottom:1px solid #3d3b39}.setting-row{padding:3px 0}.setting-row label{color:#9a9a9a;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:6px}.setting-row input[type=checkbox]{accent-color:#629924}.copyables__body{padding:8px 10px}.copyables-toggle{border-top:1px solid #3d3b39}.copyables-show-btn{background:none;border:none;color:#777;cursor:pointer;font-size:12px;padding:6px 10px;width:100%;text-align:left;transition:color .15s}.copyables-show-btn:hover{color:#bababa}.analyse__tools{width:var(--tools-width);min-width:var(--tools-width);max-width:var(--tools-width);flex-shrink:0;box-sizing:border-box;height:100%;max-height:calc(100dvh - 40px);background:#262421;display:flex;flex-direction:column;overflow:visible;transform:scale(var(--board-scale-x),var(--board-scale-y));transform-origin:center center}.analyse__menu{display:flex;justify-content:flex-end;padding:8px 8px 0 0;z-index:1000;position:relative}.analyse__menu-btn{background:#1e1d1bd9;border:1px solid #3d3b39;color:#bababa;cursor:pointer;font-size:16px;padding:3px 8px;border-radius:3px;line-height:1;transition:background .15s}.analyse__menu-btn:hover{background:#3d3b39}.analyse__menu-dropdown{position:absolute;top:100%;right:8px;margin-top:4px;background:#1e1d1b;border:1px solid #3d3b39;border-radius:4px;min-width:200px;max-height:80dvh;overflow-y:auto;box-shadow:0 8px 24px #0009;padding:10px 0;z-index:2000}.menu-section{padding:4px 12px}.menu-section__title{color:#777;font-size:10px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #333}#toast-container{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:9999999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{background:#333;color:#fff;padding:10px 20px;border-radius:5px;box-shadow:0 4px 12px #00000080;font-size:14px;animation:toast-fade-in .3s ease-out;pointer-events:auto;border-left:4px solid #4a9ff5}.toast.success{border-left-color:#629924}.toast.error{border-left-color:#f44}@keyframes toast-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast.fade-out{opacity:0;transform:translateY(20px);transition:all .3s ease-in}:root{--primary-h: 210;--primary-s: 100%;--primary-l: 56%;--primary: hsl(var(--primary-h), var(--primary-s), var(--primary-l));--primary-dark: hsl(var(--primary-h), var(--primary-s), 40%);--bg-dark: hsl(210, 10%, 8%);--bg-darker: hsl(210, 10%, 5%);--bg-card: hsl(210, 10%, 12%);--text-main: hsl(0, 0%, 85%);--text-dim: hsl(0, 0%, 65%);--text-muted: hsl(0, 0%, 45%);--border-color: hsla(0, 0%, 100%, .1);--glass-bg: hsla(0, 0%, 100%, .03);--glass-border: hsla(0, 0%, 100%, .08);--font-main: "Inter", system-ui, -apple-system, sans-serif;--header-height: 60px}*{box-sizing:border-box}body{margin:0;padding:0;background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-main);overflow:hidden;height:100dvh;width:100vw}#app{height:100%;width:100%;display:flex}.app-root{display:flex;flex-direction:column;width:100%;height:100%}.main-header{height:var(--header-height);flex-shrink:0;background:var(--bg-darker);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;z-index:100;box-shadow:0 2px 10px #0000004d}.main-header .app-title{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.5px;background:linear-gradient(135deg,#fff 0%,var(--primary) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.main-header .header-controls{display:flex;align-items:center;gap:2rem}.main-header .header-controls .main-nav{display:flex;gap:.5rem;background:var(--glass-bg);padding:.25rem;border-radius:8px;border:1px solid var(--glass-border)}.main-header .header-controls .main-nav button{background:transparent;color:var(--text-dim);border:none;padding:.5rem 1rem;border-radius:6px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.main-header .header-controls .main-nav button:hover{color:#fff;background:var(--glass-border)}.main-header .header-controls .main-nav button.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px hsla(var(--primary-h),var(--primary-s),var(--primary-l),.4)}.main-header .header-controls .user-box{display:flex;align-items:center;gap:1rem;font-size:.9rem}.main-header .header-controls .user-box .user-email{color:var(--text-dim)}.main-header .header-controls .user-box .btn-logout{background:transparent;color:var(--text-muted);border:1px solid var(--border-color);padding:.4rem .8rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.main-header .header-controls .user-box .btn-logout:hover{background:#ff00001a;color:#f55;border-color:#f55}.main-content{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.auth-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-card);padding:3rem;border-radius:16px;width:100%;max-width:400px;border:1px solid var(--glass-border);box-shadow:0 20px 50px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-container h2{margin-top:0;margin-bottom:2rem;font-weight:300;text-align:center;letter-spacing:1px;color:#fff}.auth-container form{display:flex;flex-direction:column;gap:1.2rem}.auth-container form .field{display:flex;flex-direction:column;gap:.5rem}.auth-container form .field label{font-size:.85rem;color:var(--text-dim);font-weight:500}.auth-container form .field input{background:var(--bg-darker);border:1px solid var(--glass-border);color:#fff;padding:.8rem 1rem;border-radius:8px;font-size:1rem;transition:all .2s}.auth-container form .field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px hsla(var(--primary-h),var(--primary-s),var(--primary-l),.2)}.auth-container form button{margin-top:1rem;background:var(--primary);color:#fff;border:none;padding:1rem;border-radius:8px;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 4px 15px hsla(var(--primary-h),var(--primary-s),var(--primary-l),.3);transition:all .2s}.auth-container form button:hover{transform:translateY(-2px);box-shadow:0 6px 20px hsla(var(--primary-h),var(--primary-s),var(--primary-l),.4)}.auth-container form button:active{transform:translateY(0)}.auth-container .auth-switch{margin-top:2rem;text-align:center;font-size:.9rem;color:var(--text-dim)}.auth-container .auth-switch .link{background:none;border:none;color:var(--primary);font-weight:600;cursor:pointer;padding:0;margin-left:.5rem}.auth-container .auth-switch .link:hover{text-decoration:underline}.loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.2rem;color:var(--text-dim)}.analyse__practice-zone{padding:1.2rem;border-top:1px solid var(--border-color);margin-top:1rem;background:#ffffff05;border-radius:8px}.analyse__practice-zone .practice-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.analyse__practice-zone .practice-header .practice-title{color:var(--text-dim);font-weight:700;font-size:.9rem;letter-spacing:.5px}.analyse__practice-zone .practice-header .btn-practice-toggle{padding:4px 12px;background:#3d3b39;color:#fff;border:1px solid var(--border-color);border-radius:20px;cursor:pointer;font-size:.75rem;font-weight:700;transition:all .2s}.analyse__practice-zone .practice-header .btn-practice-toggle.active{background:#629924;border-color:#7ab332;box-shadow:0 0 10px #6299244d}.analyse__practice-zone .practice-status{padding:1rem;background:#0003;border-radius:8px;margin-bottom:1rem;border:1px solid var(--glass-border)}.analyse__practice-zone .practice-status .practice-step-info{font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:1px}.analyse__practice-zone .practice-status .practice-feedback{padding:.6rem;border-radius:6px;text-align:center;font-size:.85rem;font-weight:600;color:#fff;background:#2b2927;transition:all .3s}.analyse__practice-zone .practice-status .practice-feedback.correct{background:#1b4a1b;color:#8f8;border:1px solid #2d6a2d}.analyse__practice-zone .practice-status .practice-feedback.wrong{background:#4a1b1b;color:#f88;border:1px solid #6a2d2d}.analyse__practice-zone .btn-load-puzzle{width:100%;padding:.8rem;background:#369;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s;box-shadow:0 4px 12px #3366994d}.analyse__practice-zone .btn-load-puzzle:hover{background:#4a9ff5;transform:translateY(-1px)}.btn-open-editor{width:calc(100% - 2.4rem);margin:0 1.2rem 1.2rem;padding:.8rem;background:transparent;color:var(--text-dim);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s}.btn-open-editor:hover{background:var(--glass-bg);border-color:var(--text-muted);color:#fff}.puzzle-container{display:flex;flex:1;min-height:0;width:100%;position:relative;overflow:hidden;background:var(--bg-dark)}.puzzle-sidebar{width:60px;background:var(--bg-darker);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;flex-shrink:0;z-index:50}.puzzle-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 .8rem;height:60px;flex-shrink:0;border-bottom:1px solid var(--border-color);min-width:0}.puzzle-sidebar .sidebar-header h2,.puzzle-sidebar .sidebar-header h3{margin:0;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);white-space:nowrap;overflow:hidden;transition:opacity .2s;opacity:0;flex:1;min-width:0}.puzzle-sidebar .btn-sidebar-toggle{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-main);width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:all .2s;flex-shrink:0}.puzzle-sidebar .btn-sidebar-toggle:hover{background:var(--glass-border);color:#fff}.puzzle-sidebar .sidebar-stats{padding:1rem;display:flex;flex-direction:column;gap:.8rem;border-bottom:1px solid var(--border-color);transition:opacity .2s;opacity:0;pointer-events:none}.puzzle-sidebar .sidebar-stats .stat-item{display:flex;flex-direction:column;gap:.2rem}.puzzle-sidebar .sidebar-stats .stat-item .label{font-size:.65rem;font-weight:700;color:var(--text-muted);letter-spacing:1px}.puzzle-sidebar .sidebar-stats .stat-item .value{font-size:1.1rem;font-weight:300;color:#fff;font-family:Outfit,sans-serif}.puzzle-sidebar .btn-next-lap{width:calc(100% - 1rem);padding:.6rem;margin:.5rem;background:#3692e7;color:#fff;border:none;border-radius:6px;font-weight:700;cursor:pointer;font-size:.85rem;transition:all .2s;box-shadow:0 2px 8px #3692e733;flex-shrink:0;white-space:nowrap;overflow:hidden}.puzzle-sidebar .btn-next-lap:hover{background:#4da3ef;transform:translateY(-1px);box-shadow:0 4px 12px #3692e766}.puzzle-sidebar .btn-next-lap:active{transform:translateY(0)}.puzzle-sidebar .puzzle-dots-container{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:1rem .5rem;width:100%;overflow-y:auto;flex:1;transition:opacity .2s;opacity:0;pointer-events:none}.puzzle-sidebar .puzzle-dots-container::-webkit-scrollbar{width:4px}.puzzle-sidebar .puzzle-dots-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.puzzle-sidebar .sidebar-section{display:flex;flex-direction:column;border-bottom:1px solid var(--border-color);padding:.5rem;transition:opacity .2s;opacity:0;pointer-events:none}.puzzle-sidebar .sidebar-section h3{margin:.5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.puzzle-sidebar .sidebar-section.game-section{flex:1;overflow:hidden}.puzzle-sidebar .set-list,.puzzle-sidebar .puzzle-list{display:flex;flex-direction:column;gap:.2rem;width:100%;overflow-y:auto}.puzzle-sidebar .set-list::-webkit-scrollbar,.puzzle-sidebar .puzzle-list::-webkit-scrollbar{width:4px}.puzzle-sidebar .set-list::-webkit-scrollbar-thumb,.puzzle-sidebar .puzzle-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.puzzle-sidebar .puzzle-list{flex:1}.puzzle-sidebar .set-item,.puzzle-sidebar .puzzle-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .8rem;border-radius:4px;cursor:pointer;transition:background .2s,color .2s;color:var(--text-dim);font-size:.85rem}.puzzle-sidebar .set-item:hover,.puzzle-sidebar .puzzle-item:hover{background:#ffffff0d;color:#fff}.puzzle-sidebar .set-item.active,.puzzle-sidebar .puzzle-item.active{background:#3692e726;color:#3692e7;font-weight:700;border-left:2px solid #3692e7}.puzzle-sidebar .set-item .set-name,.puzzle-sidebar .puzzle-item .set-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.puzzle-sidebar .set-item .btn-delete-small,.puzzle-sidebar .puzzle-item .btn-delete-small{background:none;border:none;color:#e74c3c;cursor:pointer;font-size:1rem;padding:0 .4rem;line-height:1;opacity:.5;transition:opacity .2s}.puzzle-sidebar .set-item .btn-delete-small:hover,.puzzle-sidebar .puzzle-item .btn-delete-small:hover{opacity:1}.puzzle-sidebar .puzzle-item-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.puzzle-sidebar .puzzle-item-info .puzzle-id{font-weight:600}.puzzle-sidebar .puzzle-item-info .puzzle-meta{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.puzzle-container.sidebar-open .puzzle-sidebar{width:240px}.puzzle-container.sidebar-open .puzzle-sidebar h2,.puzzle-container.sidebar-open .puzzle-sidebar h3,.puzzle-container.sidebar-open .puzzle-sidebar .sidebar-stats,.puzzle-container.sidebar-open .puzzle-sidebar .sidebar-section,.puzzle-container.sidebar-open .puzzle-sidebar .puzzle-dots-container{opacity:1;pointer-events:auto}.puzzle-pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;width:100%}.puzzle-pagination .page-info{font-weight:700;color:var(--text-muted);font-size:.75rem;text-align:center;white-space:nowrap}.puzzle-pagination button{background:#444;color:#fff;border:none;width:24px;height:24px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all .2s}.puzzle-pagination button:hover:not(:disabled){background:#555}.puzzle-pagination button:disabled{opacity:.2;cursor:not-allowed}.puzzle-dots{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;padding:.5rem;width:100%}.puzzle-dots .status-dot{width:42px;height:42px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.175,.885,.32,1.275);background:#3d3b39;color:var(--text-muted)}.puzzle-dots .status-dot:hover{transform:scale(1.1);color:#fff}.puzzle-dots .status-dot.current{border:2px solid var(--primary);box-shadow:0 0 12px hsla(var(--primary-h),var(--primary-s),var(--primary-l),.4);color:#fff}.puzzle-dots .status-dot.correct{background:#81b64c;color:#fff}.puzzle-dots .status-dot.wrong{background:#fa4d4d;color:#fff}.puzzle-layout{display:flex;flex-direction:column;align-items:center;padding:1.5rem;gap:1.2rem;flex:1;min-height:0;overflow-y:auto;width:100%;position:relative;z-index:10;background:var(--bg-dark)}.puzzle-layout .puzzle-header{text-align:center}.puzzle-layout .puzzle-header h2{margin:0;font-size:1.6rem;font-weight:300;color:#fff;letter-spacing:.5px}.puzzle-layout .puzzle-header .lap-info{color:var(--text-muted);font-size:.85rem;margin-top:.3rem;font-family:monospace}.puzzle-layout .puzzle-message{font-size:1.3rem;font-weight:700;min-height:1.6rem;text-shadow:0 2px 4px rgba(0,0,0,.4)}.puzzle-layout .puzzle-main{display:flex;justify-content:center;align-items:center;width:100%;padding:.5rem 0}.puzzle-layout .puzzle-main .puzzle-board-container{position:relative;width:min(70dvh,90vw,550px);height:min(70dvh,90vw,550px);flex-shrink:0;box-shadow:0 10px 40px #0009;transition:all .4s cubic-bezier(.4,0,.2,1);border:8px solid transparent;border-radius:12px;margin:12px;box-sizing:border-box;overflow:visible;background:#000;padding:0!important}.puzzle-layout .puzzle-main .puzzle-board-container.turn-white{border-color:#fff;box-shadow:0 0 0 4px #ffffff4d,0 0 30px #ffffff80,0 10px 40px #0009}.puzzle-layout .puzzle-main .puzzle-board-container.turn-black{border-color:#555;box-shadow:0 0 0 4px #fff6,0 10px 40px #000c}.puzzle-layout .puzzle-main .puzzle-board-container.turn-black:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 30px #ffffff1f;pointer-events:none;border-radius:4px}.puzzle-layout .puzzle-main .puzzle-board-container .puzzle-board,.puzzle-layout .puzzle-main .puzzle-board-container .cg-board-wrap{position:absolute!important;top:-1px!important;left:-1px!important;width:calc(100% + 2px)!important;height:calc(100% + 2px)!important;margin:0!important;padding:0!important}.puzzle-layout .puzzle-main .puzzle-board-container .puzzle-board .cg-wrap,.puzzle-layout .puzzle-main .puzzle-board-container .puzzle-board .cg-board,.puzzle-layout .puzzle-main .puzzle-board-container .cg-board-wrap .cg-wrap,.puzzle-layout .puzzle-main .puzzle-board-container .cg-board-wrap .cg-board{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}.puzzle-layout .puzzle-main .puzzle-analyse-container{width:100%;height:min(72dvh,90vw,600px);background:var(--bg-card);border-radius:12px;overflow:hidden;border:1px solid var(--border-color);position:relative;box-shadow:0 10px 40px #00000080}.puzzle-layout .puzzle-main .puzzle-analyse-container .analyse-wrapper{height:100%;width:100%}.puzzle-layout .puzzle-main .puzzle-analyse-container .analyse{padding:1.2rem;gap:1.5rem;height:100%;width:100%;box-sizing:border-box;justify-content:space-evenly}.puzzle-layout .puzzle-main .puzzle-analyse-container .analyse .puzzle-board-container{height:calc(100% - 24px);width:auto;aspect-ratio:1/1;flex:0 1 auto;margin:12px}.puzzle-layout .puzzle-main .puzzle-analyse-container .analyse .analyse__tools{flex:1 1 300px;max-width:420px;height:100%}.puzzle-layout .puzzle-controls{display:flex;flex-wrap:wrap;gap:1rem;width:100%;max-width:600px;padding-bottom:2.5rem;position:relative;z-index:20}.puzzle-layout .puzzle-controls button{flex:1;padding:.9rem;border-radius:10px;border:none;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);background:#3d3b39;color:#fff;font-size:.9rem;border:1px solid rgba(255,255,255,.05)}.puzzle-layout .puzzle-controls button:hover:not(:disabled){background:#4d4b49;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.puzzle-layout .puzzle-controls button.btn-next{background:#4caf50;box-shadow:0 4px 15px #4caf504d}.puzzle-layout .puzzle-controls button.btn-next:hover:not(:disabled){background:#66bb6a;box-shadow:0 6px 20px #66bb6a66}.puzzle-layout .puzzle-controls button:disabled{opacity:.2;cursor:not-allowed;transform:none!important;box-shadow:none!important}#promotion-choice{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2000;background:#00000080}#promotion-choice square{display:block;position:absolute;background-color:#b5b5b5;box-shadow:inset 0 0 25px 3px #0003;cursor:pointer;transition:background-color .2s}#promotion-choice square:hover{background-color:#f5f5f5}#promotion-choice square piece{pointer-events:none;background-size:cover;background-position:center}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:var(--bg-card);width:90%;max-width:500px;padding:2rem;border-radius:12px;border:1px solid var(--glass-border);box-shadow:0 10px 30px #00000080}.modal-content h3{margin-top:0;margin-bottom:1.5rem;color:#fff;font-weight:600}.modal-content .form-group{margin-bottom:1.2rem;display:flex;flex-direction:column;gap:.5rem}.modal-content .form-group label{font-size:.85rem;color:var(--text-dim);font-weight:500}.modal-content .form-group input,.modal-content .form-group textarea{background:var(--bg-darker);border:1px solid var(--glass-border);color:#fff;padding:.7rem;border-radius:6px;font-size:.95rem;font-family:inherit}.modal-content .form-group input:focus,.modal-content .form-group textarea:focus{outline:none;border-color:var(--primary)}.modal-content .form-group textarea{resize:vertical;min-height:80px}.modal-content .modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.modal-content .modal-actions button{padding:.6rem 1.2rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.modal-content .modal-actions .btn-cancel{background:#444;color:#ccc}.modal-content .modal-actions .btn-cancel:hover{background:#555;color:#fff}.modal-content .modal-actions .btn-submit{background:var(--primary);color:#fff}.modal-content .modal-actions .btn-submit:hover{transform:translateY(-1px);box-shadow:0 4px 12px hsla(var(--primary-h),var(--primary-s),var(--primary-l),.3)}
