html,body,#root{margin:0;height:100%}html,body{overscroll-behavior-y:none;overscroll-behavior-x:none}body{overflow:hidden}#root,#root *{-webkit-user-select:none;user-select:none}#root input,#root textarea{-webkit-user-select:text;user-select:text}.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,.cg-wrap .cg-shapes-below,.cg-wrap .cg-custom-below{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-shapes-below{overflow:hidden;z-index:1}.cg-wrap .cg-custom-below{z-index:1}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg,.cg-wrap .cg-custom-below 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{background-color:#f0d9b5;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxnIGlkPSJhIj4KICA8ZyBpZD0iYiI+CiAgICA8ZyBpZD0iYyI+CiAgICAgIDxnIGlkPSJkIj4KICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz4KICAgICAgICA8cmVjdCB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZiIgb3BhY2l0eT0iMC4yIi8+CiAgICAgICAgPHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2YiIHg6aHJlZj0iI2YiLz4KICAgICAgPC9nPgogICAgICA8dXNlIHg9IjIiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+CiAgICA8L2c+CiAgICA8dXNlIHg9IjQiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+CiAgPC9nPgogIDx1c2UgeT0iMiIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz4KPC9nPgo8dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+Cjwvc3ZnPg==)}cg-board square.move-dest{background:radial-gradient(#14551e80 22%,#208530 0,#0000004d,#0000 0)}cg-board square.premove-dest{background:radial-gradient(#141e5580 22%,#203085 0,#0000004d,#0000 0)}cg-board square.oc.move-dest{background:radial-gradient(transparent 0%,transparent 80%,rgba(20,85,0,.3) 80%)}cg-board square.oc.premove-dest{background:radial-gradient(transparent 0%,transparent 80%,rgba(20,30,85,.2) 80%)}cg-board square.move-dest:hover{background:#14551e4d}cg-board square.premove-dest:hover{background:#141e5533}cg-board square.last-move{background-color:#9bc70069}cg-board square.selected{background-color:#14551e80}cg-board square.check{background:radial-gradient(ellipse at center,red,#e70000 25%,#a9000000 89%,#9e000000)}cg-board square.current-premove{background-color:#141e5580}.orientation-white .ranks :nth-child(odd),.orientation-white .files :nth-child(2n),.orientation-black .ranks :nth-child(2n),.orientation-black .files :nth-child(odd),coords.squares:nth-of-type(odd) :nth-child(2n),coords.squares:nth-of-type(2n) :nth-child(odd){color:#484848cc}.orientation-white .ranks :nth-child(2n),.orientation-white .files :nth-child(odd),.orientation-black .ranks :nth-child(odd),.orientation-black .files :nth-child(2n),coords.squares:nth-of-type(odd) :nth-child(odd),coords.squares:nth-of-type(2n) :nth-child(2n){color:#fffc}.cg-wrap piece.pawn.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==)}.cg-wrap piece.bishop.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.knight.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjMDAwIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.rook.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy0zdi00aDIxdjRIMTJ6bS0xLTIyVjloNHYyaDVWOWg1djJoNVY5aDR2NSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMzQgMTRsLTMgM0gxNGwtMy0zIi8+PHBhdGggZD0iTTMxIDE3djEyLjVIMTRWMTciIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMxIDI5LjVsMS41IDIuNWgtMjBsMS41LTIuNSIvPjxwYXRoIGQ9Ik0xMSAxNGgyMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=)}.cg-wrap piece.queen.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik04IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMSAxIDQgMHptMTYuNS00LjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAwek00MSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTE2IDguNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTMzIDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAweiIvPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi0xMi03IDExVjExbC01LjUgMTMuNS0zLTE1LTMgMTUtNS41LTE0VjI1TDcgMTRsMiAxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTkgMjZjMCAyIDEuNSAyIDIuNSA0IDEgMS41IDEgMSAuNSAzLjUtMS41IDEtMS41IDIuNS0xLjUgMi41LTEuNSAxLjUuNSAyLjUuNSAyLjUgNi41IDEgMTYuNSAxIDIzIDAgMCAwIDEuNS0xIDAtMi41IDAgMCAuNS0xLjUtMS0yLjUtLjUtMi41LS41LTIgLjUtMy41IDEtMiAyLjUtMiAyLjUtNC04LjUtMS41LTE4LjUtMS41LTI3IDB6IiBzdHJva2UtbGluZWNhcD0iYnV0dCIvPjxwYXRoIGQ9Ik0xMS41IDMwYzMuNS0xIDE4LjUtMSAyMiAwTTEyIDMzLjVjNi0xIDE1LTEgMjEgMCIgZmlsbD0ibm9uZSIvPjwvZz48L3N2Zz4=)}.cg-wrap piece.king.white{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjZNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTIyLjUgMjVzNC41LTcuNSAzLTEwLjVjMCAwLTEtMi41LTMtMi41cy0zIDIuNS0zIDIuNWMtMS41IDMgMyAxMC41IDMgMTAuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTEuNSAzN2M1LjUgMy41IDE1LjUgMy41IDIxIDB2LTdzOS00LjUgNi0xMC41Yy00LTYuNS0xMy41LTMuNS0xNiA0VjI3di0zLjVjLTMuNS03LjUtMTMtMTAuNS0xNi00LTMgNiA1IDEwIDUgMTBWMzd6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTExLjUgMzBjNS41LTMgMTUuNS0zIDIxIDBtLTIxIDMuNWM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.pawn.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==)}.cg-wrap piece.bishop.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48L2c+PC9zdmc+)}.cg-wrap piece.knight.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjZWNlY2VjIiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMjQuNTUgMTAuNGwtLjQ1IDEuNDUuNS4xNWMzLjE1IDEgNS42NSAyLjQ5IDcuOSA2Ljc1UzM1Ljc1IDI5LjA2IDM1LjI1IDM5bC0uMDUuNWgyLjI1bC4wNS0uNWMuNS0xMC4wNi0uODgtMTYuODUtMy4yNS0yMS4zNC0yLjM3LTQuNDktNS43OS02LjY0LTkuMTktNy4xNmwtLjUxLS4xeiIgZmlsbD0iI2VjZWNlYyIgc3Ryb2tlPSJub25lIi8+PC9nPjwvc3ZnPg==)}.cg-wrap piece.rook.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy41LTdsMS41LTIuNWgxN2wxLjUgMi41aC0yMHptLS41IDR2LTRoMjF2NEgxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTE0IDI5LjV2LTEzaDE3djEzSDE0eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTQgMTYuNUwxMSAxNGgyM2wtMyAyLjVIMTR6TTExIDE0VjloNHYyaDVWOWg1djJoNVY5aDR2NUgxMXoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTEyIDM1LjVoMjFtLTIwLTRoMTltLTE4LTJoMTdtLTE3LTEzaDE3TTExIDE0aDIzIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=)}.cg-wrap piece.queen.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIHN0cm9rZT0ibm9uZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMTQiIGN5PSI5IiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMjIuNSIgY3k9IjgiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzMSIgY3k9IjkiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzOSIgY3k9IjEyIiByPSIyLjc1Ii8+PC9nPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi41LTEyLjVMMzEgMjVsLS4zLTE0LjEtNS4yIDEzLjYtMy0xNC41LTMgMTQuNS01LjItMTMuNkwxNCAyNSA2LjUgMTMuNSA5IDI2eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNOSAyNmMwIDIgMS41IDIgMi41IDQgMSAxLjUgMSAxIC41IDMuNS0xLjUgMS0xLjUgMi41LTEuNSAyLjUtMS41IDEuNS41IDIuNS41IDIuNSA2LjUgMSAxNi41IDEgMjMgMCAwIDAgMS41LTEgMC0yLjUgMCAwIC41LTEuNS0xLTIuNS0uNS0yLjUtLjUtMiAuNS0zLjUgMS0yIDIuNS0yIDIuNS00LTguNS0xLjUtMTguNS0xLjUtMjcgMHoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTExIDM4LjVhMzUgMzUgMSAwIDAgMjMgMCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMTEgMjlhMzUgMzUgMSAwIDEgMjMgMG0tMjEuNSAyLjVoMjBtLTIxIDNhMzUgMzUgMSAwIDAgMjIgMG0tMjMgM2EzNSAzNSAxIDAgMCAyNCAwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiLz48L2c+PC9zdmc+)}.cg-wrap piece.king.black{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjYiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMjIuNSAyNXM0LjUtNy41IDMtMTAuNWMwIDAtMS0yLjUtMy0yLjVzLTMgMi41LTMgMi41Yy0xLjUgMyAzIDEwLjUgMyAxMC41IiBmaWxsPSIjMDAwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjxwYXRoIGQ9Ik0xMS41IDM3YzUuNSAzLjUgMTUuNSAzLjUgMjEgMHYtN3M5LTQuNSA2LTEwLjVjLTQtNi41LTEzLjUtMy41LTE2IDRWMjd2LTMuNWMtMy41LTcuNS0xMy0xMC41LTE2LTQtMyA2IDUgMTAgNSAxMFYzN3oiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMyIDI5LjVzOC41LTQgNi4wMy05LjY1QzM0LjE1IDE0IDI1IDE4IDIyLjUgMjQuNWwuMDEgMi4xLS4wMS0yLjFDMjAgMTggOS45MDYgMTQgNi45OTcgMTkuODVjLTIuNDk3IDUuNjUgNC44NTMgOSA0Ljg1MyA5IiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMTEuNSAzMGM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwbS0yMSAzLjVjNS41LTMgMTUuNS0zIDIxIDAiIHN0cm9rZT0iI2VjZWNlYyIvPjwvZz48L3N2Zz4=)}:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#111827;background:#eef2f7}*{box-sizing:border-box}body{margin:0;-webkit-text-size-adjust:100%;text-size-adjust:100%}button,input,select{font:inherit}.app{padding:1rem;height:100dvh;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{margin-bottom:1rem;flex-shrink:0}.topbar-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.hamburger-btn{font-size:1.2rem;line-height:1;min-width:2.2rem;padding:.3rem .45rem}.gear-btn{font-size:1.05rem;line-height:1;min-width:2.1rem;padding:.32rem .45rem}.gear-btn-right{margin-left:auto}.move-list .controls-row>button:not(.hamburger-btn):not(.icon-toggle-btn):not(.continue-training-btn):not(.stop-training-btn):not(.back-btn):not(.flashcard-toggle-btn):not(.sudden-death-toggle-btn){width:2.6rem;min-width:2.6rem;height:2.2rem;padding:.3rem .2rem;font-size:.82rem;text-align:center}.flashcard-toggle-btn,.sudden-death-toggle-btn{width:auto}.mode-icon-btn{width:2.2rem;min-width:2.2rem;height:2.2rem;padding:.25rem;display:inline-flex;align-items:center;justify-content:center}.move-list .controls-row>button.replay-control-btn{width:2.2rem;min-width:2.2rem;height:2.2rem;padding:.25rem}.replay-label{margin-left:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(22rem,55vw)}.has-submenu-dot{position:relative}.has-submenu-dot:after{content:"•";position:absolute;right:.16rem;bottom:.08rem;font-size:.55rem;line-height:1;opacity:.7;pointer-events:none}.flashcard-toggle-btn.active{background:#dbeafe;border-color:#93c5fd}.sudden-death-toggle-btn.active{background:#fee2e2;border-color:#fca5a5}.controls-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.controls-row-break{display:none}.controls-row label{display:inline-flex;align-items:center;gap:.4rem}.inline-stepper{display:inline-flex;align-items:center;gap:.3rem}.inline-stepper>button{width:1.85rem;min-width:1.85rem;height:1.85rem;min-height:1.85rem;border-radius:999px;padding:0;line-height:1}.inline-stepper>button svg{width:1rem;height:1rem;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;fill:none}.stockfish-controls-row{width:100%}.ai-engine-controls{display:grid;gap:.45rem}.ai-engine-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.ai-row-right{margin-left:auto}.ai-engine-label{min-width:6.4rem;font-weight:600}.ai-engine-select{display:inline-flex;align-items:center;gap:.55rem}.ai-engine-tab{border:0;background:transparent;padding:.1rem .15rem;min-width:0;height:auto;color:#64748b;font-weight:600}.ai-engine-tab:hover{background:transparent;color:#334155}.ai-engine-tab.active{color:#0f172a}.ai-switch{display:inline-flex;align-items:center;gap:.35rem;min-width:2.3rem;height:1.3rem;padding:0;border:0;background:transparent}.ai-switch:hover{background:transparent}.ai-switch-track{width:2.2rem;height:1.18rem;border-radius:999px;background:#cbd5e1;position:relative;transition:background .2s ease}.ai-switch-thumb{position:absolute;top:.12rem;left:.12rem;width:.94rem;height:.94rem;border-radius:999px;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s ease}.ai-switch.on .ai-switch-track{background:#22c55e}.ai-switch.on .ai-switch-thumb{transform:translate(1.02rem)}.ai-switch-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ai-elo-select-wrap{display:inline-flex;align-items:center;position:relative}.ai-elo-select-wrap:after{content:"";position:absolute;right:.18rem;top:50%;width:.38rem;height:.38rem;border-right:1.5px solid #64748b;border-bottom:1.5px solid #64748b;transform:translateY(-62%) rotate(45deg);pointer-events:none}.ai-elo-select{appearance:none;border:0;background:transparent;color:#0f172a;font-size:.82rem;font-weight:600;line-height:1.2;padding:.08rem .95rem .08rem .18rem;min-width:4.8rem;white-space:nowrap}.ai-elo-select:hover{color:#334155}.ai-elo-select:focus-visible{outline:2px solid #93c5fd;outline-offset:1px;border-radius:.25rem}.ai-eval-table{margin:.1rem 0 .25rem}.stockfish-controls-right{margin-left:auto;display:inline-flex;align-items:center;gap:.5rem}.stockfish-settings-btn{min-width:2.2rem}.stepper-value{min-width:1.8rem;text-align:center}.status{color:#334155;font-size:.9rem}.layout{display:block;flex:1;height:100%;min-height:0;overflow:hidden}.left-panel{display:grid;gap:1rem;width:100%;height:100%;min-height:0;overflow:hidden}.board-row{display:grid;grid-template-columns:minmax(clamp(300px,34vw,420px),1fr) minmax(clamp(220px,28vw,500px),760px) minmax(clamp(300px,34vw,420px),1fr);gap:1rem;align-items:start;width:100%;height:100%;min-height:0;overflow:hidden}.board-row.training-mode{grid-template-columns:minmax(clamp(300px,34vw,420px),1fr) minmax(clamp(220px,28vw,500px),760px) minmax(clamp(300px,34vw,420px),1fr)}.board-row.training-mode .board-center{grid-column:2}.board-row.training-mode .move-list{grid-column:3}.card{background:#fff;border:1px solid #d5dce8;border-radius:10px;padding:.8rem}.card h2{margin-top:0;margin-bottom:.7rem;font-size:1.05rem}.board{width:min(100%,760px);aspect-ratio:1 / 1;margin:0 auto;border-radius:10px;overflow:hidden;box-shadow:0 10px 24px #00000024;touch-action:none}.board-center{display:grid;gap:.55rem;align-content:start;min-height:0;overflow:hidden}.board-meta{width:min(100%,760px);margin:0 auto;padding:.15rem 0;display:grid;gap:.25rem;color:#334155;font-size:.94rem}.board-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.opening-title{flex:1;min-width:0;line-height:1.2;min-height:2.4em;max-height:2.4em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.board-options-btn{flex-shrink:0}.stats-row{display:flex;align-items:center;gap:.5rem}.games-total{white-space:nowrap}.games-eval-inline{font-size:.88em;margin-left:.2em}.current-repertoire{color:#475569;font-size:.82rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-repertoire-name{display:flex;align-items:center;margin:.15rem 0 .2rem;padding:.35rem 0;border-bottom:1px solid #e5ebf3;color:#475569;font-size:.82rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.variant-row,.table-row,.move-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.move-table-wrap{overflow-x:auto;margin:.4rem 0 .8rem}.move-table{width:100%;border-collapse:collapse;font-size:.95rem}.move-table th,.move-table td{border-bottom:1px solid #e5ebf3;padding:.4rem .45rem;text-align:left}.move-table th{font-weight:600;color:#334155;background:#f8fbff}.table-move-btn{width:100%;text-align:left;background:#f7faff}.table-move-btn:hover{background:#e6f0ff}.table-row{justify-content:space-between;padding:.35rem 0;border-bottom:1px solid #eef1f5}.lichess-table-actions{display:flex;justify-content:flex-end;margin:.2rem 0 .35rem}.move-inline-wrap{display:flex;flex-wrap:wrap;gap:.25rem .35rem;margin:0}.move-notation-line{min-height:2.1rem;margin:.2rem 0 .7rem}@media(orientation:landscape){.move-list .move-notation-line{min-height:10.5rem}.move-list .controls-row .controls-row-break{display:block;flex-basis:100%;height:0}}.move-inline-item{display:inline-flex;align-items:center;gap:.18rem;padding:.2rem .35rem;font-size:.9rem;border:1px solid transparent;background:transparent}.move-inline-item:hover{background:#eef5ff;border-color:#dbeafe}.move-inline-item.has-alternatives{font-weight:700;color:#15803d}.move-inline-prefix{color:#64748b;font-weight:600}.tree-options-wrap{display:flex;flex-wrap:wrap;gap:.45rem .5rem;align-items:flex-start}.tree-option{display:grid;justify-items:center;gap:.14rem}.tree-option-btn{min-width:3rem;padding:.28rem .45rem}.tree-delete-popup-backdrop{position:fixed;inset:0;z-index:1100}.tree-delete-popup{position:fixed;transform:translate(-50%);z-index:1101;background:#fff;border:0;border-radius:8px;padding:.35rem;box-shadow:0 8px 24px #0f172a38}.tree-delete-popup>button{white-space:nowrap}.app.theme-dark .tree-delete-popup{background:#111b2e}.tree-option-leaves{font-size:.72rem;color:#64748b;line-height:1}.repertoire-hit-block{margin-top:.7rem;padding-top:.45rem;border-top:1px solid #e5ebf3;font-size:.78rem;color:#475569}.repertoire-hit-head{display:flex;align-items:center;justify-content:space-between;gap:.35rem}.repertoire-hit-block.move-tools-only{margin-top:.45rem}.repertoire-hit-list{margin-top:.2rem;line-height:1.35;display:flex;flex-wrap:wrap;gap:.35rem}.repertoire-hit-item{padding:.2rem .45rem;font-size:.74rem}.repertoire-hit-item.active{color:#15803d;font-weight:700;border-color:#22c55e;background:#ecfdf5}.current-repertoire.active-repertoire,.training-repertoire-name{color:#15803d;font-weight:700}.lichess-clickable-row{cursor:pointer;border-radius:6px}.lichess-clickable-row:hover{background:#eef5ff}.lichess-clickable-row:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.lichess-clickable-row.disabled{cursor:default}.lichess-clickable-row.disabled:hover{background:transparent}.stockfish-clickable-row{cursor:pointer;border-radius:6px}.stockfish-clickable-row:hover{background:#eef5ff}.stockfish-clickable-row:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.table-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lichess-panel .lichess-cell-move{flex:0 0 52px}.lichess-panel .lichess-cell-games{flex:0 0 90px;font-size:.8rem}.lichess-panel .lichess-cell-elo{flex:0 0 42px;font-size:.72rem;text-align:right}.lichess-panel .lichess-cell-bar{flex:1}.lichess-example-games{margin-top:.45rem;padding-top:.45rem;border-top:1px solid #e5ebf3;display:grid;gap:.35rem}.lichess-example-lists{display:grid;gap:.45rem}.lichess-example-list{display:grid;gap:.18rem}.lichess-example-item{font-size:.8rem;line-height:1.3;overflow-wrap:anywhere}.lichess-example-load-btn{border:0;background:transparent;color:#1d4ed8;text-decoration:none;padding:0;min-width:0;width:auto;height:auto;text-align:left;font:inherit;cursor:pointer}.lichess-example-load-btn:hover{text-decoration:underline}.lichess-example-load-btn:disabled{color:#64748b;cursor:default;text-decoration:none}.danger{color:#b91c1c}.filters-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:.5rem;align-items:start}.filters-grid label{display:grid;gap:.3rem;align-self:start}.toggle-group{display:inline-flex;flex-wrap:wrap;gap:.35rem}.database-toggle>button{width:5rem;min-width:5rem;height:2rem;text-align:center;white-space:nowrap}.date-range-toggle>button{width:100%;min-width:0;height:2rem;text-align:center;white-space:nowrap}.date-range-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,3.1rem));gap:.35rem;width:max-content}.toggle-group .active{background:#dbeafe;border-color:#93c5fd}.repertoire-list>button.active{background:#dbeafe;border-color:#93c5fd}.checkbox-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin:.6rem 0}.checkbox-grid.single-column{grid-template-columns:1fr}.card-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.card-head h2{margin:0}.lichess-status-row{display:inline-flex;align-items:center;gap:.4rem}.lichess-rate-limit-note{display:block;margin-top:.2rem;font-size:.78rem;opacity:.92}.lichess-auth-note{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.2rem}.player-handle-row{display:inline-flex;align-items:center;gap:.35rem}.player-handle-input{width:9.2rem}.token-editor-modal{width:min(430px,calc(100vw - 2rem))}.token-editor-help{font-size:.86rem;line-height:1.3}.token-editor-link{font-size:.84rem;overflow-wrap:anywhere}.spinner{width:.9rem;height:.9rem;border:2px solid #c8d3e6;border-top-color:#2563eb;border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stockfish-arrow-toggle{margin-left:0}.inline-check{display:flex;align-items:center;gap:.35rem;margin-top:.25rem}.move-list{align-self:stretch;height:100%;min-height:0;max-height:100%;overflow:auto}.move-list .controls-row{border-bottom:1px solid #e5ebf3;padding-bottom:.45rem;margin-bottom:.45rem}.move-list.training-pane .controls-row{border-bottom:0;padding-bottom:0;margin-bottom:.35rem}.move-list .controls-row>button.continue-training-btn{min-width:8rem;width:8rem}.move-list .controls-row>button.next-missing-btn{width:auto;min-width:3rem}.move-list .controls-row>button.next-missing-btn svg{width:1rem;height:1rem;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;fill:none}.move-list .controls-row>button.stop-training-btn{width:auto;min-width:7.5rem;white-space:nowrap}.training-stats-gear-btn{margin-left:auto}.training-stats-dropdown{margin:-.05rem 0 .35rem;padding:.55rem .6rem;width:min(20rem,100%);margin-left:auto;border:1px solid #e5ebf3;border-radius:8px}.training-position-stats{margin:.1rem 0 .35rem;display:grid;gap:.2rem}.training-thinking-row{display:inline-flex;align-items:center;gap:.35rem}.training-game-over-row .status{color:#b91c1c;font-weight:600}.training-position-stats-row{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;color:#334155}.move-list .controls-row>button.back-btn{width:4.2rem;min-width:4.2rem;height:2.2rem;display:inline-flex;align-items:center;justify-content:center;padding:.3rem .2rem;line-height:1}.move-list .controls-row>button.back-btn .tab-icon{width:1.55rem;height:1.55rem}.lichess-panel{align-self:stretch;height:100%;min-height:0;max-height:100%;overflow:auto;position:relative;padding-bottom:3rem}.stockfish-inline{margin-top:1.15rem;padding-top:.75rem}.stockfish-inline .table{margin-top:.35rem}.portrait-tabbar{display:none}.stockfish-eval-text{font-weight:600}.portrait-tabbar>button{width:2.5rem;min-width:2.5rem;display:inline-flex;align-items:center;justify-content:center;padding:.35rem 0;color:#111827}.portrait-tabbar>button.long-pressable-btn{position:relative}.portrait-tabbar>button.long-pressable-btn:after{content:"•";position:absolute;right:.16rem;bottom:.08rem;font-size:.55rem;line-height:1;opacity:.72;pointer-events:none}.portrait-tabbar>button.training-stop-btn.long-pressable-btn:after{content:none}.tab-icon{width:1.35rem;height:1.35rem;display:block}.arrow-toggle-group{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem}.icon-toggle-btn{width:2.6rem;min-width:2.6rem;height:2rem;min-height:2rem;display:inline-flex;align-items:center;justify-content:center;padding:.3rem 0;position:relative}.icon-toggle-btn.active{background:#dbeafe;border-color:#93c5fd}.icon-toggle-btn.with-diagonal-arrow:after{content:"➚";position:absolute;left:50%;top:50%;bottom:auto;transform:scaleX(1.2);transform-origin:left center;font-size:1.18rem;font-weight:700;line-height:1;color:#f59e0b;text-shadow:0 0 2px #111827,0 0 2px #111827;opacity:.95;pointer-events:none}.icon-toggle-btn.only-arrow:after{transform:translate(-50%,-50%) scaleX(1.2);transform-origin:center center}.icon-toggle-btn.with-diagonal-arrow.arrow-stockfish:after{color:#2563eb}.icon-toggle-btn.with-diagonal-arrow.arrow-tree:after{color:#16a34a}.portrait-only{display:none}.portrait-filters-btn,.portrait-filters-btn.with-eval{margin-left:auto}.stockfish-inline .table-row span:first-child{flex:0 0 44px}.stockfish-inline .table-row span:nth-child(2){flex:0 0 50px}.stockfish-panel .table-row span:first-child{flex:0 0 44px}.stockfish-panel .table-row span:nth-child(2){flex:0 0 50px}.stats-bar{width:100%;height:22px;display:flex;border:1px solid #cfd8e6;border-radius:6px;overflow:hidden;background:#f4f7fb}.seg{display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;white-space:nowrap;min-width:0;overflow:hidden}.seg-white{background:#fff;color:#0f172a}.seg-draw{background:#cbd5e1;color:#0f172a}.seg-black{background:#111827;color:#f8fafc}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;padding:1rem;z-index:1000}.modal-card{width:min(860px,100%);background:#fff;border:1px solid #d5dce8;border-radius:10px;padding:.9rem;max-height:90vh;overflow:auto}.filters-modal{width:min(620px,100%);height:min(620px,90vh);max-height:min(620px,90vh);overflow:hidden;overflow-x:hidden;display:flex;flex-direction:column}.filters-modal-main{flex:0 0 60%;min-height:0;max-height:60%;overflow:auto;overflow-x:hidden;padding-right:.1rem}.filters-modal-fixed{flex-shrink:0;border-top:1px solid #e5ebf3;margin-top:.5rem;padding-top:.6rem}.options-modal{width:min(360px,calc(100vw - 2rem));max-width:calc(100vw - 2rem);overflow:hidden}.options-grid{display:grid;gap:.5rem;margin-top:.7rem;overflow-x:hidden}.options-grid>button{width:100%;white-space:normal;word-break:break-word}.options-footer-link-wrap{display:flex;width:100%;justify-content:flex-end;margin-top:.75rem;padding-right:.45rem;box-sizing:border-box}.options-footer-link{display:inline-flex;align-items:center;justify-content:center;color:#475569}.options-footer-link svg{width:1.35rem;height:1.35rem;fill:currentColor}.options-footer-link:hover{color:#0f172a}.app.theme-dark .options-footer-link{color:#e2e8f0}.app.theme-dark .options-footer-link:hover{color:#f8fafc}.repertoire-name-row{display:grid;gap:.3rem}.repertoire-list{display:grid;gap:.35rem}.repertoire-list>button{text-align:left}.repertoire-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:.35rem;align-items:center}.repertoire-row>button:first-child{text-align:left}button{border:1px solid #c8d3e6;border-radius:6px;background:#f8fbff;padding:.35rem .6rem;cursor:pointer}button:hover{background:#e9f1ff}button:disabled{opacity:.45;cursor:not-allowed}input,select{border:1px solid #c8d3e6;border-radius:6px;padding:.3rem .45rem}.compact-number-input{width:4.2rem;text-align:center}.slider-field{display:inline-flex;align-items:center;gap:.45rem}.slider-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.6rem 0;align-items:start}.slider-stack.single-column{grid-template-columns:1fr}.slider-stack label{display:grid;gap:.3rem}.threshold-slider{width:8rem}.min-frequency-slider{width:12rem}.slider-value{min-width:2.6rem;text-align:right}.stockfish-quick-modal{width:min(340px,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.move-tools-modal,.sudden-death-settings-modal{width:min(360px,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.eval-manager-modal{width:min(420px,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.eval-manager-title{margin:0 0 .55rem;font-size:1rem}.eval-progress-block{margin-bottom:.65rem}.eval-progress-label{font-size:.82rem;color:#475569;margin-bottom:.2rem}.eval-progress-track{width:100%;height:.5rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.eval-progress-fill{height:100%}.eval-progress-fill.cloud{background:#2563eb}.eval-progress-fill.local{background:#16a34a}.eval-manager-summary{margin-top:.25rem;font-size:.82rem;color:#475569}.eval-manager-actions{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.45rem}.db-stats-modal{width:min(620px,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}.db-stats-side{margin-top:.65rem;padding-top:.55rem;border-top:1px solid #e5ebf3}.db-stats-side h4{margin:0 0 .45rem;text-transform:capitalize;font-size:.95rem}.db-stats-list{display:grid;gap:.45rem}.db-stats-item{border:1px solid #e5ebf3;border-radius:8px;padding:.45rem .55rem}.db-stats-name{font-weight:600;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-stats-values{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.82rem;color:#475569}.db-stats-training{margin-top:.3rem;gap:.45rem .7rem}.training-stats-menu-actions{display:grid;gap:.4rem;margin-bottom:.5rem}.app.theme-dark{background:#0b1220;color:#e2e8f0}.app.theme-dark .card,.app.theme-dark .modal-card{background:#111b2e;border-color:#334155}.app.theme-dark .status,.app.theme-dark .board-meta,.app.theme-dark .current-repertoire,.app.theme-dark .training-repertoire-name,.app.theme-dark .training-position-stats-row,.app.theme-dark .eval-progress-label,.app.theme-dark .eval-manager-summary,.app.theme-dark .move-inline-prefix,.app.theme-dark .tree-option-leaves,.app.theme-dark .move-table th{color:#cbd5e1}.app.theme-dark .training-game-over-row .status{color:#fca5a5}.app.theme-dark .eval-progress-track{background:#334155}.app.theme-dark .db-stats-side{border-top-color:#334155}.app.theme-dark .db-stats-item{border-color:#334155}.app.theme-dark .db-stats-values{color:#cbd5e1}.app.theme-dark .training-repertoire-name{border-top-color:#334155;border-bottom-color:#334155}.app.theme-dark .move-table th{background:#1b2a42}.app.theme-dark .tree-option-leaves,.app.theme-dark .repertoire-hit-item.active,.app.theme-dark .current-repertoire.active-repertoire,.app.theme-dark .training-repertoire-name{color:#4ade80}.app.theme-dark .flashcard-toggle-btn.active{background:#1d4ed8;border-color:#60a5fa;color:#eff6ff}.app.theme-dark .sudden-death-toggle-btn.active{background:#7f1d1d;border-color:#ef4444;color:#fee2e2}.app.theme-dark .repertoire-hit-item.active{border-color:#22c55e;background:#052e16}.app.theme-dark .table-row,.app.theme-dark .move-table th,.app.theme-dark .move-table td,.app.theme-dark .move-list .controls-row,.app.theme-dark .training-stats-dropdown,.app.theme-dark .filters-modal-fixed,.app.theme-dark .repertoire-hit-block{border-color:#334155}.app.theme-dark button{background:#1e293b;border-color:#475569;color:#e2e8f0}.app.theme-dark button.danger{color:#f87171}.app.theme-dark button:hover{background:#334155}.app.theme-dark input,.app.theme-dark select{background:#0f172a;border-color:#475569;color:#e2e8f0}.app.theme-dark .toggle-group .active,.app.theme-dark .portrait-tabbar .active,.app.theme-dark .icon-toggle-btn.active,.app.theme-dark .repertoire-list>button.active{background:#1d4f91;border-color:#60a5fa}.app.theme-dark .ai-switch-track{background:#475569}.app.theme-dark .ai-switch.on .ai-switch-track{background:#16a34a}.app.theme-dark .ai-engine-tab{color:#94a3b8}.app.theme-dark .ai-engine-tab:hover{color:#cbd5e1}.app.theme-dark .ai-engine-tab.active{color:#f8fafc}.app.theme-dark .ai-elo-select{color:#e2e8f0}.app.theme-dark .ai-elo-select:hover{color:#f8fafc}.app.theme-dark .ai-elo-select-wrap:after{border-right-color:#94a3b8;border-bottom-color:#94a3b8}.app.theme-dark .table-move-btn,.app.theme-dark .move-inline-item{background:transparent;border-color:transparent;color:#b8c1cf}.app.theme-dark .table-move-btn:hover,.app.theme-dark .move-inline-item:hover{color:#cbd5e1}.app.theme-dark .tree-option-btn{background:#1e293b;border-color:#475569;color:#e2e8f0}.app.theme-dark .tree-option-btn:hover{background:#334155;border-color:#60a5fa;color:#e2e8f0}.app.theme-dark .table-move-btn:hover,.app.theme-dark .lichess-clickable-row:hover,.app.theme-dark .stockfish-clickable-row:hover,.app.theme-dark .move-inline-item:hover{background:#24344f}.app.theme-dark .move-inline-item:hover{border-color:#60a5fa}.app.theme-dark .move-inline-item.has-alternatives{color:#4ade80}.app.theme-dark .modal-backdrop{background:#020617b3}.app.theme-dark .stats-bar{border-color:#475569;background:#0f172a}.app.theme-dark .seg-white{background:#f8fafc;color:#020617}.app.theme-dark .seg-draw{background:#64748b;color:#f8fafc}.app.theme-dark .seg-black{background:#020617;color:#f8fafc}.app.theme-dark .spinner{border-color:#334155;border-top-color:#60a5fa}@media(max-width:1080px)and (orientation:portrait){.board-row{grid-template-columns:1fr;height:auto;overflow:hidden}.board{width:min(100%,620px)}.move-list,.lichess-panel{max-height:none;height:auto}.lichess-panel .lichess-cell-move{flex:0 0 44px}.lichess-panel .lichess-cell-games{flex:0 0 78px;font-size:.76rem}.lichess-panel .lichess-cell-elo{flex:0 0 36px;font-size:.68rem}}@media(orientation:portrait){.app{padding:0 .7rem .7rem;gap:.45rem}.topbar{margin-bottom:0}.board-row{grid-template-columns:1fr;grid-template-rows:min-content minmax(0,1fr);gap:.35rem;height:100%;min-height:0;overflow:hidden}.board-row.training-mode{grid-template-columns:1fr;grid-template-rows:min-content minmax(0,1fr)}.board-row.training-mode .board-center{grid-column:auto;grid-row:1}.board-row.training-mode .move-list{grid-column:auto;grid-row:2}.board-center{order:initial;grid-row:1;min-height:0;overflow:hidden;gap:.18rem}.portrait-tabbar{display:inline-flex;gap:.4rem;margin-top:0;position:relative}.portrait-tabbar .active{background:#dbeafe;border-color:#93c5fd}.portrait-tabbar>button.hint-portrait-btn{width:auto;min-width:3.4rem;padding:.35rem .55rem}.portrait-tabbar>button.training-stop-btn{width:auto;min-width:7.6rem;white-space:nowrap;padding:.35rem .6rem}.portrait-tabbar>button.hint-portrait-btn{margin-left:auto}.portrait-tabbar>button.training-stats-portrait-gear{margin-left:auto}.portrait-tabbar>button.continue-portrait-btn{width:auto;min-width:4.7rem;padding:.35rem .6rem;position:absolute;left:63%;transform:translate(-50%)}.portrait-tabbar>button.portrait-back-btn{width:5rem;min-width:5rem;margin-left:auto;margin-right:0}.desktop-only{display:none}.move-list .controls-row>button.desktop-only{display:none}.portrait-only{display:block}.portrait-pane{display:none;grid-row:2;height:100%;min-height:0;max-height:100%;overflow:auto;overscroll-behavior:contain}.portrait-pane.active{display:block}.lichess-panel,.stockfish-panel{order:initial}.stockfish-panel.portrait-pane.active{display:flex;flex-direction:column;overflow:hidden}.stockfish-panel.portrait-pane .ai-engine-controls{flex:0 0 auto}.stockfish-panel.portrait-pane .ai-engine-row-top{width:100%;flex-wrap:nowrap}.stockfish-panel.portrait-pane .ai-row-right{margin-left:auto;flex-shrink:0}.stockfish-panel.portrait-pane .ai-elo-slot{width:5.2rem;min-width:5.2rem;display:inline-flex;justify-content:flex-start}.stockfish-panel.portrait-pane .ai-elo-select{min-width:4.2rem;font-size:.78rem;padding-right:.78rem}.stockfish-panel.portrait-pane .inline-stepper{gap:.16rem}.stockfish-panel.portrait-pane .stepper-value{min-width:1.35rem}.stockfish-panel.portrait-pane .ai-portrait-scroll{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}.stockfish-panel.portrait-pane .ai-eval-table{margin-top:0}.move-list{order:initial}.move-list.training-pane{padding-top:.45rem}.move-list.training-pane .training-repertoire-name{margin-top:0;padding-top:.25rem;padding-bottom:.25rem}}
