.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{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{--color-primary: #0D9488;--color-primary-hover: #0F766E;--color-primary-active: #115E59;--color-primary-light: #14B8A6;--color-primary-subtle: rgba(13, 148, 136, .12);--color-accent: #F59E0B;--color-accent-hover: #D97706;--color-accent-active: #B45309;--color-bg-primary: #0C0F1A;--color-bg-secondary: #141827;--color-bg-tertiary: #1C2035;--color-surface: #242842;--color-hover: #2E3350;--color-text: #E8ECF4;--color-text-secondary: #94A3B8;--color-text-muted: #64748B;--color-border: #2A2F45;--color-border-light: #353B55;--color-success: #22C55E;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-success-text: #86EFAC;--color-error-text: #FCA5A5;--color-warning-text: #FCD34D;--color-success-bg: rgba(34, 197, 94, .15);--color-error-bg: rgba(239, 68, 68, .15);--color-warning-bg: rgba(245, 158, 11, .15);--font-size-base: clamp(.875rem, 2vw, 1rem);--board-size: min(480px, calc(100vw - 2rem) );--touch-target-min: 44px;--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;margin:0;padding:0}html{touch-action:manipulation}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--color-bg-primary);color:var(--color-text-secondary);min-height:100vh;min-height:100dvh;font-size:var(--font-size-base);padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom);padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}button{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:active:not(:disabled){transform:scale(.97)}button:disabled{pointer-events:none}.start-button:active:not(:disabled),.camp-train-all-btn:active:not(:disabled),.confirm-dialog-confirm:active:not(:disabled){background-color:var(--color-accent-active)}.auth-submit:active:not(:disabled),.verification-button:active:not(:disabled),.comment-submit-button:active:not(:disabled){background-color:var(--color-primary-active)}.confirm-dialog-destructive:active:not(:disabled),.comment-delete-button:active:not(:disabled){background-color:#ef444499}.reset-button:active:not(:disabled),.confirm-dialog-cancel:active:not(:disabled){background-color:var(--color-hover)}.save-button:active:not(:disabled){background-color:#1a9d48}.reset-button:disabled,.camp-train-all-btn:disabled,.confirm-dialog-cancel:disabled,.confirm-dialog-confirm:disabled,.confirm-dialog-destructive:disabled,.comment-delete-button:disabled,.verification-button:disabled{opacity:.5;cursor:not-allowed}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}.loading-spinner.small{width:20px;height:20px;border-width:2px}.loading-spinner-text{font-size:.875rem;color:var(--color-text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;text-align:center}.empty-state-icon{font-size:2.5rem;line-height:1;opacity:.5}.empty-state-text{color:var(--color-text-muted);font-size:.9rem}.empty-state-cta{margin-top:.5rem;padding:.5rem 1.25rem;min-height:44px;font-size:.875rem;font-weight:500;border:1px dashed var(--color-primary);border-radius:8px;background-color:transparent;color:var(--color-primary);cursor:pointer;transition:all .2s ease}.empty-state-cta:hover{background-color:#0d94881a;border-style:solid}.selector-search-row{margin-bottom:.5rem}.selector-search{width:100%;padding:.6rem .75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-primary);color:var(--color-text)}.selector-search:focus{outline:none;border-color:var(--color-primary)}.selector-search::placeholder{color:var(--color-text-muted)}.sort-filter-row{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem}.sort-filter-row .sort-bar{margin-bottom:0}.create-opening-cta{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.65rem 1rem;min-height:44px;font-size:.9rem;font-weight:600;white-space:nowrap;border:2px dashed var(--color-primary);border-radius:8px;background-color:#0d94880f;color:var(--color-primary);cursor:pointer;transition:all .2s ease;margin-bottom:.5rem}.create-opening-cta:hover{background-color:#0d948826;border-style:solid}.create-opening-cta svg{flex-shrink:0}.app{width:100%;padding:1rem 2rem}.app-header{text-align:center;margin-bottom:1rem}.logo-container{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.logo-icon{width:34px;height:auto;color:var(--color-text)}.logo-text{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;line-height:1}.logo-text-ches{color:var(--color-text)}.logo-text-spire{color:var(--color-primary)}.app-logo{cursor:pointer}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:0}.header-top .app-logo{flex-shrink:0}.header-top .tab-nav{flex:1;justify-content:center}.header-top .header-auth{flex-shrink:0}.header-auth{display:flex;align-items:center}.login-button{padding:.5rem 1rem;min-height:44px;font-size:.875rem;border:1px solid var(--color-primary);border-radius:6px;background-color:transparent;color:var(--color-primary);cursor:pointer;transition:all .2s ease}.login-button:hover{background-color:var(--color-primary);color:var(--color-text)}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;transition:all .2s ease}.user-menu-trigger:hover{border-color:var(--color-primary)}.user-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-burger{display:flex;flex-direction:column;justify-content:center;gap:3px;width:18px;height:18px}.user-menu-burger span{display:block;width:100%;height:2px;background-color:var(--color-text-muted);border-radius:1px;transition:all .2s ease}.user-menu-trigger[aria-expanded=true] .user-menu-burger span:nth-child(1){transform:translateY(5px) rotate(45deg)}.user-menu-trigger[aria-expanded=true] .user-menu-burger span:nth-child(2){opacity:0}.user-menu-trigger[aria-expanded=true] .user-menu-burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.user-menu-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;min-width:180px;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:100}.user-menu-header{padding:.75rem 1rem}.user-email{font-size:.75rem;color:var(--color-text-muted)}.user-menu-divider{height:1px;background-color:var(--color-border)}.user-menu-item{display:block;width:100%;padding:.75rem 1rem;font-size:.875rem;text-align:left;border:none;background:none;color:var(--color-text);cursor:pointer;transition:background-color .2s ease}.user-menu-item:hover{background-color:var(--color-bg-tertiary)}.tab-nav{display:flex;justify-content:center;gap:.5rem}.tab-button{padding:.5rem 1rem;min-height:var(--touch-target-min);font-size:.9rem;border:none;border-radius:8px;cursor:pointer;background-color:var(--color-bg-secondary);color:var(--color-text-muted);transition:all .2s ease}.tab-button:hover{background-color:var(--color-bg-tertiary);color:var(--color-text)}.tab-button.active{background-color:var(--color-primary);color:var(--color-text)}.app-main{display:flex;justify-content:center}.app-main>*{animation:viewFadeIn .2s ease-out;width:100%}@keyframes viewFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.training-view{width:100%}.selection-panel,.training-panel,.finished-panel{background-color:var(--color-bg-secondary);border-radius:12px;padding:1.5rem}.training-panel,.finished-panel{max-width:1100px;margin:0 auto}.selection-panel h2,.training-panel h2,.finished-panel h2{margin-bottom:.25rem;text-align:center;font-size:1.4rem;font-weight:700;letter-spacing:-.01em}.selection-subtitle{text-align:center;color:var(--color-text-muted);font-size:.9rem;margin:0 0 1rem}.opening-selector{margin-bottom:1rem}.opening-selector>label{display:block;margin-bottom:.75rem;font-weight:500}.opening-selector.loading,.opening-selector.error{text-align:center;padding:1rem;color:var(--color-text-muted)}.opening-selector.error{color:var(--color-error-text)}.source-tabs{display:flex;background:var(--color-bg-primary);border-radius:8px;padding:3px;margin-bottom:.75rem}.source-tab{flex:1;min-height:44px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease}.source-tab.active{background:var(--color-primary);color:var(--color-text)}.source-tab:not(.active):hover{color:var(--color-text);background:var(--color-bg-tertiary)}.opening-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media (min-width: 600px){.opening-cards-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 768px){.opening-cards-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1024px){.opening-cards-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1400px){.opening-cards-grid{grid-template-columns:repeat(5,1fr)}}@media (min-width: 1800px){.opening-cards-grid{grid-template-columns:repeat(6,1fr)}}.opening-card{display:flex;flex-direction:column;padding:0;background-color:var(--color-bg-primary);border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s ease;position:relative;overflow:hidden}.opening-card:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-border)}.opening-card.selected{border-color:var(--color-primary);background-color:#0d94881a}.card-color-strip{height:3px;width:100%}.card-color-strip.white{background-color:#f0f0f0}.card-color-strip.black{background-color:#333}.board-preview{width:80px;height:80px;flex-shrink:0;border-radius:4px;overflow:hidden;pointer-events:none}.opening-card .board-preview{width:100%;height:auto;aspect-ratio:1;border-radius:0;flex-shrink:unset}.card-body{display:flex;flex-direction:column;gap:.125rem;padding:.5rem .625rem}.card-name{font-size:.85rem;font-weight:500;color:var(--color-text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-meta{font-size:.75rem;color:var(--color-text-muted)}.card-body .rating-display{flex-direction:row;align-items:center;gap:.15rem;margin-top:.125rem;padding:.25rem .4rem;border:none;background:none}.card-body .rating-label{display:none}.card-body .rating-pieces{gap:0}.card-body .rating-piece{width:22px;height:22px;min-width:22px;min-height:22px;background-size:16px 16px}.card-body .rating-info{font-size:.7rem}.card-badge{display:inline-block;margin-left:.375rem;padding:.1rem .375rem;border-radius:3px;font-size:.675rem;font-weight:600;text-transform:uppercase}.card-badge.public{background-color:#22c55e33;color:var(--color-success-text)}.sort-bar{display:flex;gap:.375rem;margin-bottom:.5rem}.sort-btn{min-height:44px;padding:.5rem .75rem;font-size:.85rem;border:1px solid var(--color-border);border-radius:4px;background-color:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.sort-btn:hover{background-color:var(--color-bg-tertiary);color:var(--color-text)}.sort-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text)}.start-button,.reset-button,.save-button{display:block;width:100%;padding:.75rem 1.5rem;min-height:var(--touch-target-min);font-size:1rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.start-button{background-color:var(--color-accent);color:#1a1a2e;margin-top:1rem}.start-button:hover:not(:disabled){background-color:var(--color-accent-hover)}.start-button:disabled{background-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.reset-button{background-color:var(--color-border);color:var(--color-text-secondary);margin-top:1rem}.training-rating{display:flex;justify-content:center;margin-top:.75rem}.training-rating-inline{margin:0;padding-top:.15rem;display:flex;justify-content:center}.training-rating-inline .rating-display{padding:.15rem 0;border:none;background:transparent;gap:.1rem;flex-direction:column;align-items:center;justify-content:center}.training-rating-inline .rating-label{display:none}.training-rating-inline .rating-compact .rating-label{display:inline}.rating-compact-header{display:flex;align-items:center;gap:.4rem}.rating-compact-header .rating-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--color-text-secondary)}.rating-user-score{font-size:.7rem;font-weight:600;color:var(--color-primary)}.training-rating-inline .rating-piece{width:44px;height:44px;min-width:44px;min-height:44px;background-size:26px 26px}.reset-button:hover{background-color:var(--color-border-light)}.training-info{text-align:center;margin-bottom:.25rem;padding-bottom:.25rem;position:relative}.training-info:after{content:"";position:absolute;bottom:0;left:3rem;right:3rem;height:1px;background:var(--color-border)}.phase-badge{background-color:var(--color-hover);padding:.25rem .75rem;border-radius:4px;font-size:.875rem;text-transform:capitalize}.step-counter{color:var(--color-text-muted);font-size:.875rem}.training-header-row{display:flex;align-items:center;gap:.5rem;justify-content:center}.training-header-row h2{margin:0;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-header-logo{width:34px;height:auto;flex-shrink:0;cursor:pointer}.header-more-wrapper{position:relative;flex-shrink:0}.header-more-btn{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease;letter-spacing:1px}.header-more-btn:hover,.header-more-btn.active{background-color:var(--color-hover);color:var(--color-text)}.header-more-menu{top:100%!important;bottom:auto!important;right:0;left:auto!important;margin-top:6px;margin-bottom:0!important;box-shadow:0 4px 16px #0000004d!important}.variant-name-label{display:none}.back-btn{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease}.back-btn:hover{background-color:var(--color-hover);color:var(--color-text)}@media (max-width: 600px){.app:has(.training-panel) .app-header{display:none}.training-panel{padding:.15rem 0 .25rem;border-radius:0;overflow-x:hidden;overflow-y:auto;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;gap:0;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px));box-sizing:border-box}.training-panel .board-with-variants{flex:1;min-height:0;margin-top:0;display:flex;flex-direction:column;justify-content:flex-start}.training-rating-inline .rating-piece{background-size:24px 24px}.training-rating-inline .rating-compact-header .rating-label,.training-rating-inline .rating-user-score{font-size:.65rem}.training-panel .training-toolbar{flex-shrink:0;position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--color-bg-tertiary);border-top:1px solid var(--color-border);padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom,0px));margin:0}.selection-panel,.finished-panel{padding:.5rem .25rem;border-radius:0}.training-info{margin-bottom:.35rem}.training-header-logo{width:26px}.training-header-row{position:relative;justify-content:space-between}.training-header-row h2{position:absolute;left:50%;transform:translate(-50%);text-align:center;min-width:0;font-size:.85rem;max-width:calc(100vw - 180px);pointer-events:none}.header-more-wrapper{margin-left:auto}.variant-name-label{display:block;text-align:center;font-size:.7rem;color:var(--color-text-muted);padding:0;margin-top:-.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-toolbar{gap:.15rem;flex-wrap:nowrap;padding:.25rem 0}.toolbar-btn{font-size:.85rem;padding:.5rem .75rem;min-height:48px}.toolbar-btn-stacked{min-height:44px}.back-btn{width:44px;height:44px;font-size:1.1rem}.header-more-btn{width:44px;height:44px;font-size:1rem}.toolbar-more-menu button{padding:.75rem 1rem;font-size:.9rem;min-height:44px}.card-body{padding:.25rem .4rem;gap:0}.card-name{font-size:.7rem;-webkit-line-clamp:1}.card-meta{font-size:.6rem}.card-body .rating-piece{width:18px;height:18px;min-width:18px;min-height:18px;background-size:14px 14px}.card-body .rating-info{font-size:.6rem}.card-body .rating-display{padding:.1rem 0;margin-top:0}}.training-toolbar{display:flex;gap:.5rem;justify-content:center;align-items:center;padding:.25rem 0;flex-wrap:wrap}.toolbar-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .6rem;min-height:34px;font-size:.8rem;font-weight:500;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease}.toolbar-btn:hover:not(:disabled){background-color:var(--color-hover);color:var(--color-text);border-color:var(--color-primary)}.toolbar-btn:disabled{opacity:.5;cursor:default}.toolbar-btn.toolbar-info-btn.active{background-color:#0d948826;border-color:var(--color-primary);color:var(--color-primary)}.toolbar-video-btn{text-decoration:none;color:#c00}.toolbar-video-btn:hover{color:#e00}.mobile-toolbar-stacked{justify-content:space-between;gap:.15rem;flex-wrap:nowrap}.toolbar-btn-stacked{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.25rem .4rem;min-width:0;flex:1;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s}.toolbar-btn-stacked:hover:not(:disabled),.toolbar-btn-stacked.active{color:var(--color-text)}.toolbar-btn-stacked:disabled{opacity:.35;cursor:default}.toolbar-icon{font-size:1.2rem;line-height:1}.toolbar-label{font-size:.6rem;font-weight:500;line-height:1;white-space:nowrap}.toolbar-pgn-dropdown{position:relative}.toolbar-pgn-dropdown .toolbar-pgn-menu{display:none;position:absolute;top:100%;left:50%;transform:translate(-50%);z-index:10;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;box-shadow:0 4px 12px #0000004d;min-width:140px;overflow:hidden;margin-top:4px}.toolbar-pgn-dropdown:hover .toolbar-pgn-menu,.toolbar-pgn-dropdown:focus-within .toolbar-pgn-menu{display:block}.toolbar-pgn-menu button{display:block;width:100%;padding:.5rem .75rem;font-size:.8rem;border:none;background:transparent;color:var(--color-text);cursor:pointer;text-align:left}.toolbar-pgn-menu button:hover{background-color:var(--color-hover)}.training-info-panel{background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem;margin-top:.5rem;text-align:left}.info-panel-section{margin-bottom:.5rem}.info-panel-section:last-child{margin-bottom:0}.info-panel-section strong{font-size:.8rem;color:var(--color-text-secondary)}.info-panel-section p{margin:.2rem 0 0;font-size:.78rem;line-height:1.5;color:var(--color-text-muted);overflow-wrap:break-word;word-break:break-word}.info-panel-section a{color:var(--color-primary);text-decoration:underline}.info-panel-section a:hover{color:var(--color-primary-hover)}.toolbar-more-wrapper{position:relative}.toolbar-more-menu{position:absolute;bottom:100%;left:0;z-index:20;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 -4px 16px #0000004d;min-width:200px;overflow:hidden;margin-bottom:6px}.toolbar-more-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19}.toolbar-more-menu button{display:block;width:100%;padding:.6rem .75rem;font-size:.82rem;border:none;background:transparent;color:var(--color-text);cursor:pointer;text-align:left}.toolbar-more-menu button:hover{background-color:var(--color-hover)}.toolbar-more-menu button+button,.toolbar-more-menu button+label,.toolbar-more-menu label{border-top:1px solid var(--color-border)}.toolbar-more-menu-toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;font-size:.82rem;color:var(--color-text);cursor:pointer}.toolbar-more-menu-toggle .arrow-toggle{flex-shrink:0}.board-area{position:relative;display:flex;justify-content:center;align-items:stretch;gap:8px;margin:1rem 0}.board-overlay-wrapper{position:relative;max-width:100%}.training-controls{display:flex;flex-direction:column;gap:.5rem;min-width:120px;max-width:140px;padding-top:.25rem}.training-controls .toolbar-btn{width:100%;justify-content:flex-start}.training-controls .arrow-toggle,.training-controls .toolbar-pgn-dropdown{width:100%}.training-controls .toolbar-pgn-dropdown .toolbar-pgn-menu{left:100%;top:0;transform:none;margin-top:0;margin-left:4px}.board-size-slider{display:flex;align-items:center;justify-content:center;padding:.25rem 0}.board-size-slider input[type=range]{width:120px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-border);border-radius:2px;outline:none;cursor:pointer;opacity:.5;transition:opacity .2s}.board-size-slider input[type=range]:hover{opacity:1}.board-size-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-primary);cursor:pointer}.board-size-slider input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-primary);border:none;cursor:pointer}.training-controls .board-size-slider{align-items:center;padding:.25rem .5rem}.training-controls .board-size-slider input[type=range]{width:100%}.chessboard-container{border-radius:8px;overflow:hidden;box-shadow:0 4px 20px #0000004d;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}cg-board{background-color:var(--cg-board-light, #f0d9b5)!important;background-image:var(--cg-board-svg)!important}cg-board square.highlight-square{box-shadow:inset 0 0 0 3px #0f09!important}cg-board square.last-move{background-color:#ff06!important}cg-board square.selected{background-color:#ff09!important}.board-preview .cg-wrap{width:100%!important;height:100%!important}.board-area.wrong-move .chessboard-container{box-shadow:0 0 0 4px var(--color-error),0 4px 20px #ef444480;animation:wrongMoveShake .4s ease}@keyframes wrongMoveShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.round-complete-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:#0000008c;z-index:20;border-radius:4px;cursor:pointer;animation:roundCompleteFadeIn .3s ease}.round-complete-overlay span{color:var(--color-success);font-size:1.5rem;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.6)}.round-complete-winrate{color:#ffffffd9!important;font-size:1rem!important;font-weight:500!important}.round-complete-hint{color:var(--color-text-secondary)!important;font-size:.9rem!important;font-weight:400!important}@keyframes roundCompleteFadeIn{0%{opacity:0}to{opacity:1}}.evaluation-bar{width:28px;display:flex;flex-direction:column;border-radius:4px;overflow:hidden;box-shadow:0 2px 8px #0000004d;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:11px;font-weight:600;flex-shrink:0}.eval-section{display:flex;align-items:flex-start;justify-content:center;padding-top:4px;transition:height .3s ease}.eval-white{background-color:#f0f0f0}.eval-black{background-color:#333}.eval-text{writing-mode:horizontal-tb;font-size:11px;line-height:1}.eval-white .eval-text{color:#333}.eval-black .eval-text{color:#f0f0f0}.finished-panel{text-align:center}.finished-panel p{margin:1rem 0;color:var(--color-text-muted)}.error-banner,.success-banner{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.error-banner{background-color:#ef444433;border:1px solid var(--color-error);color:var(--color-error-text)}.success-banner{background-color:#22c55e33;border:1px solid var(--color-success);color:var(--color-success-text)}.error-banner button,.success-banner button{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;padding:.25rem .5rem}.error-banner button:hover,.success-banner button:hover{opacity:.7}.opening-creator{width:100%;max-width:850px;margin:0 auto;background-color:var(--color-bg-secondary);border-radius:12px;padding:1.5rem}.opening-creator h2{margin-bottom:1.5rem;text-align:center;font-size:1.4rem;font-weight:700;letter-spacing:-.01em}.opening-creator h3{margin-bottom:1rem;color:var(--color-text-secondary);font-size:1.15rem;font-weight:600}.opening-creator.loading{text-align:center;padding:3rem;color:var(--color-text-muted)}.variants-section{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.variant-list.compact{max-height:200px;overflow-y:auto}.variant-item.active{background-color:var(--color-bg-tertiary);border:1px solid var(--color-primary)}.variant-drag-handle{display:flex;align-items:center;padding:0 .5rem;cursor:grab;color:var(--color-text-muted);font-size:1rem;background:none;border:none;touch-action:none;flex-shrink:0;min-width:var(--touch-target-min);min-height:var(--touch-target-min);justify-content:center}.variant-drag-handle:hover{color:var(--color-text-muted)}.variant-drag-handle:active{cursor:grabbing}.variant-item.dragging{opacity:.5;box-shadow:0 4px 12px #0006;z-index:10}.variant-editor{margin-bottom:1.5rem;padding:1rem;background-color:var(--color-bg-secondary);border-radius:8px}.variant-editor h3{margin-bottom:.75rem}.save-opening-section{padding-top:1rem;border-top:1px solid var(--color-border)}.preview-hint{color:var(--color-text-muted);font-size:.9rem;margin-bottom:1rem}.preview-step{display:flex;gap:2rem;align-items:flex-start;margin-bottom:1rem}.preview-board-section{flex:1;min-width:0}.preview-board-controls{margin-top:.75rem}.preview-thumbnail-section{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.preview-thumbnail-section h3{margin:0;font-size:.9rem;color:var(--color-text-secondary)}.preview-thumbnail-section .board-preview{width:200px;height:200px}@media (max-width: 600px){.preview-step{flex-direction:column;align-items:stretch}.preview-thumbnail-section{flex-direction:row;justify-content:center;gap:1rem}}.arrow-toggle{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;-webkit-user-select:none;user-select:none}.arrow-toggle input{display:none}.arrow-toggle-slider{position:relative;width:34px;height:18px;background-color:var(--color-bg-tertiary);border-radius:9px;transition:background-color .2s}.arrow-toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background-color:var(--color-text-muted);border-radius:50%;transition:transform .2s,background-color .2s}.arrow-toggle input:checked+.arrow-toggle-slider{background-color:#ffaa004d}.arrow-toggle input:checked+.arrow-toggle-slider:after{transform:translate(16px);background-color:var(--color-primary)}.arrow-toggle-label{font-size:.75rem;color:var(--color-text-muted)}.arrow-hint-text{font-size:.75rem;color:var(--color-text-muted);text-align:center;margin-top:.25rem}.arrow-mode-btn{position:absolute;bottom:4px;right:-44px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;padding:0;transition:background .15s,color .15s}.arrow-mode-btn:hover{background:var(--color-hover);color:var(--color-text)}.arrow-mode-btn.active{background:#ffaa00d9;color:var(--color-text);border-color:#ffaa00d9}.arrow-mode-btn.active:hover{background:#fa0}@media (max-width: 600px){.arrow-mode-btn{right:auto;left:4px;bottom:-42px}}.top-moves{background-color:var(--color-bg-primary);padding:.75rem 1rem;border-radius:8px;margin:.5rem 0}.top-moves strong{color:var(--color-primary)}.top-moves .loading-text,.top-moves .no-analysis{color:var(--color-text-muted);font-style:italic}.top-moves-list{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap}.top-move-item{display:flex;align-items:center;gap:.4rem;background-color:var(--color-bg-secondary);padding:.4rem .75rem;border-radius:6px}.move-rank{color:var(--color-text-muted);font-size:.875rem}.move-san{font-family:monospace;font-weight:600;color:var(--color-text)}.move-eval{font-family:monospace;font-size:.875rem}.move-eval.positive{color:var(--color-success-text)}.move-eval.negative{color:var(--color-error-text)}.creator-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500}.form-group select,.form-group input{padding:.75rem;font-size:16px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-primary);color:var(--color-text)}.form-group select:focus,.form-group input:focus{outline:none;border-color:var(--color-primary)}.form-group input::placeholder{color:var(--color-text-muted)}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding-right:2.75rem;box-sizing:border-box}.password-toggle{position:absolute;right:.5rem;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent}.password-toggle:hover{color:var(--color-text)}.description-textarea{padding:.75rem;font-size:16px;font-family:inherit;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-primary);color:var(--color-text);resize:vertical;min-height:60px}.description-textarea:focus{outline:none;border-color:var(--color-primary)}.description-textarea::placeholder{color:var(--color-text-muted)}.char-counter{font-size:.75rem;color:var(--color-text-muted);text-align:right}.form-group.checkbox-group{flex-direction:row;align-items:center}.visibility-toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.6rem 1rem;background:var(--color-bg-primary);border:1px solid var(--color-bg-secondary);border-radius:8px;-webkit-user-select:none;user-select:none;transition:border-color .2s}.visibility-toggle:hover{border-color:var(--color-primary)}.toggle-switch{position:relative;width:44px;height:24px;background:var(--color-bg-secondary);border-radius:12px;flex-shrink:0;transition:background .2s}.toggle-switch.active{background:var(--color-primary)}.toggle-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;background:var(--color-text);border-radius:50%;transition:transform .2s}.toggle-switch.active .toggle-knob{transform:translate(20px)}.visibility-toggle-text{display:flex;flex-direction:column;gap:.1rem}.visibility-toggle-label{font-weight:600;font-size:.9rem;color:var(--color-text-secondary)}.visibility-toggle-desc{font-size:.75rem;color:var(--color-text-muted)}.move-list{background-color:var(--color-bg-primary);padding:1rem;border-radius:8px;margin:1rem 0;font-family:monospace;min-height:3rem;word-wrap:break-word}.move-list strong{color:var(--color-primary)}.move-list .move-number{cursor:pointer;color:var(--color-text-muted);margin-left:.4em;-webkit-user-select:none;user-select:none}.move-list .move-number:first-of-type{margin-left:.3em}.move-list .move-item{cursor:pointer;padding:.1em .25em;border-radius:3px;margin:0 .1em;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.move-list .move-item:hover{background-color:var(--color-border)}.move-list .move-item.active{background-color:var(--color-primary);color:var(--color-bg-primary);border-radius:3px}.step-nav{display:flex;align-items:center;justify-content:center;gap:.4rem;margin:.5rem 0}.step-nav button{background-color:var(--color-border);color:var(--color-text-secondary);border:none;border-radius:6px;width:36px;height:36px;min-height:var(--touch-target-min);min-width:var(--touch-target-min);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease}.step-nav button:hover:not(:disabled){background-color:var(--color-border-light)}.step-nav button:disabled{opacity:.35;cursor:not-allowed}.step-indicator{font-size:.85rem;color:var(--color-text-muted);min-width:3.5em;text-align:center;font-variant-numeric:tabular-nums}.creator-actions{display:flex;gap:.5rem}.creator-actions button{flex:1;padding:.75rem;min-height:var(--touch-target-min);font-size:1rem;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.creator-actions button:first-child,.creator-actions button:nth-child(2){background-color:var(--color-border);color:var(--color-text-secondary)}.creator-actions button:first-child:hover:not(:disabled),.creator-actions button:nth-child(2):hover{background-color:var(--color-border-light)}.creator-actions button:disabled{opacity:.5;cursor:not-allowed}.save-button{background-color:var(--color-success)!important;color:var(--color-text)!important}.save-button:hover:not(:disabled){background-color:var(--color-success)!important}.variant-list{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.variant-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:var(--color-bg-primary);border-radius:8px}.variant-info{display:flex;flex-direction:column;gap:.25rem}.variant-name{font-weight:500;color:var(--color-text)}.variant-meta{font-size:.875rem;color:var(--color-text-muted)}.variant-actions{display:flex;gap:.5rem}.variant-actions button{padding:.5rem .75rem;min-height:var(--touch-target-min);min-width:var(--touch-target-min);font-size:.875rem;border:none;border-radius:6px;cursor:pointer;background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);transition:all .2s ease}.variant-actions button:hover:not(:disabled){background-color:var(--color-hover);color:var(--color-text)}.variant-actions button:disabled{opacity:.5;cursor:not-allowed}.variant-actions .delete-button{background-color:#ef444433;color:var(--color-error-text)}.variant-actions .delete-button:hover:not(:disabled){background-color:#ef444466}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:modalFadeIn .15s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content{position:relative;background-color:var(--color-bg-secondary);border-radius:12px;padding:clamp(1rem,4vw,2rem);max-width:400px;width:90%;max-height:90vh;overflow-y:auto;animation:modalSlideUp .2s ease-out}.modal-close{position:absolute;top:1rem;right:1rem;font-size:1.5rem;line-height:1;border:none;background:none;color:var(--color-text-muted);cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--color-text)}.confirm-dialog{max-width:360px;text-align:center}.confirm-dialog-title{margin-bottom:.75rem;font-size:1.1rem;color:var(--color-text)}.confirm-dialog-message{margin-bottom:1.5rem;font-size:.9rem;color:var(--color-text-muted);line-height:1.5}.confirm-dialog-actions{display:flex;gap:.75rem}.confirm-dialog-btn{flex:1;min-height:44px;padding:.5rem 1rem;font-size:.95rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.confirm-dialog-cancel{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.confirm-dialog-cancel:hover{background-color:var(--color-hover)}.confirm-dialog-destructive{background-color:var(--color-error);color:var(--color-text)}.confirm-dialog-destructive:hover{background-color:var(--color-error)}.confirm-dialog-confirm{background-color:var(--color-accent);color:#1a1a2e}.confirm-dialog-confirm:hover{background-color:var(--color-accent-hover)}.auth-modal h2{margin-bottom:1.5rem;text-align:center}.auth-error{padding:.75rem 1rem;margin-bottom:1rem;border-radius:8px;background-color:#ef444433;border:1px solid var(--color-error);color:var(--color-error-text);font-size:.875rem}.auth-success{padding:.75rem 1rem;margin-bottom:1rem;border-radius:8px;background-color:#22c55e33;border:1px solid var(--color-success);color:var(--color-success-text);font-size:.875rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-submit{padding:.75rem 1.5rem;min-height:44px;font-size:1rem;font-weight:500;border:none;border-radius:8px;background-color:var(--color-primary);color:var(--color-text);cursor:pointer;transition:all .2s ease}.auth-submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{margin-top:1.5rem;text-align:center;font-size:.875rem;color:var(--color-text-muted)}.auth-switch button{border:none;background:none;color:var(--color-primary);cursor:pointer;font-size:inherit}.auth-switch button:hover{text-decoration:underline}.auth-divider{display:flex;align-items:center;margin:1.25rem 0;gap:.75rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background-color:var(--color-border)}.auth-divider span{font-size:.8rem;color:var(--color-text-muted);text-transform:lowercase}.social-login-wrapper{display:flex;flex-direction:column;align-items:center;gap:.5rem}.social-login-button{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.75rem 1.5rem;min-height:44px;font-size:1rem;font-weight:500;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all .2s ease}.social-login-button:hover:not(:disabled){background-color:var(--color-surface-hover, rgba(255,255,255,.05));border-color:var(--color-primary)}.social-login-button:disabled{opacity:.4;cursor:not-allowed}.social-terms-hint{font-size:.78rem;color:var(--color-text-muted);margin:0}.social-terms-accept{display:flex;flex-direction:column;gap:1rem}.social-terms-accept p{text-align:center;color:var(--color-text-secondary);font-size:.95rem;margin:0}.social-terms-accept .terms-checkbox{padding:1rem;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-surface)}.social-terms-accept .auth-submit{margin-top:.25rem}.rating-display{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:8px;background-color:#0d94880a}.rating-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.rating-row{display:flex;align-items:center;gap:.5rem}.rating-pieces{display:flex;gap:0}.rating-piece{background-color:transparent;background-size:28px 28px;background-repeat:no-repeat;background-position:center;border:none;cursor:pointer;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;opacity:.25;transition:opacity .15s ease,transform .15s ease;font-size:0;color:transparent}.rating-piece:hover:not(:disabled){opacity:.65;transform:scale(1.08)}.rating-piece.active,.rating-piece.selected{opacity:1}.rating-piece:disabled{cursor:not-allowed}.rating-info{font-size:.8rem;color:var(--color-text-muted);display:flex;align-items:center;gap:.2rem}.rating-average{font-weight:600;color:var(--color-primary)}.rating-count{color:var(--color-text-muted)}.rating-readonly{padding:0;border:none;background:none}.rating-readonly .rating-piece{cursor:default;pointer-events:none}.opening-creator{font-size:.875rem;color:var(--color-text-muted)}.board-with-variants{display:flex;gap:.75rem;justify-content:center;align-items:flex-start;margin:.25rem 0}.board-with-variants .board-area{margin:0}.variant-sidebar-wrapper{display:contents}.variant-sidebar{display:flex;flex-direction:column;gap:.25rem;overflow-y:auto;min-width:130px;max-width:180px;padding:.25rem;background-color:var(--color-bg-primary);border-radius:8px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.variant-sidebar::-webkit-scrollbar{width:4px}.variant-sidebar::-webkit-scrollbar-track{background:transparent}.variant-sidebar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.variant-sidebar-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;border:1px solid transparent;border-radius:6px;background-color:transparent;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;text-align:left;transition:all .15s ease;width:100%}.variant-sidebar-item:hover{background-color:var(--color-bg-tertiary);color:var(--color-text)}.variant-sidebar-item.active{background-color:var(--color-primary);color:var(--color-text);font-weight:500}.variant-sidebar-item:disabled{opacity:.5;cursor:not-allowed}.variant-sidebar-number{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;border-radius:4px;background-color:#ffffff14}.variant-sidebar-item.active .variant-sidebar-number{background-color:#fff3}.variant-sidebar-name{white-space:normal;word-break:break-word;line-height:1.3}.filter-icon-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--color-border);border-radius:8px;background-color:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease;flex-shrink:0}.filter-icon-btn:hover{background-color:var(--color-bg-tertiary);color:var(--color-text)}.filter-icon-btn.has-filters{border-color:var(--color-primary);color:var(--color-primary)}.filter-icon-btn.open{background-color:var(--color-bg-tertiary);color:var(--color-text)}.filter-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:16px;text-align:center;border-radius:8px;background-color:var(--color-accent);color:var(--color-text)}.filter-panel{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem;padding:.75rem;background-color:var(--color-bg-primary);border-radius:8px}.filter-row{display:flex;gap:1rem;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.375rem}.filter-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600;flex-shrink:0}.filter-chips{display:flex;gap:.25rem}.filter-chip{min-height:44px;padding:.5rem .75rem;font-size:.85rem;border:1px solid var(--color-border);border-radius:4px;background-color:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease;white-space:nowrap}.filter-chip:hover{background-color:var(--color-bg-tertiary);color:var(--color-text);border-color:var(--color-text-muted)}.filter-chip.active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text)}.filter-status{display:flex;justify-content:space-between;align-items:center}.filter-count{font-size:.75rem;color:var(--color-text-muted)}.filter-clear{font-size:.75rem;border:none;background:none;color:var(--color-primary);cursor:pointer;padding:.125rem 0}.filter-clear:hover{text-decoration:underline}@media (max-width: 768px){.tab-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--color-bg-primary);border-top:1px solid var(--color-border);padding:.25rem .5rem calc(.25rem + env(safe-area-inset-bottom));gap:.25rem}.tab-button{flex:1;flex-direction:column;font-size:.75rem;padding:.5rem .25rem;border-radius:0}.app{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.app:has(.training-panel) .tab-nav{display:none}.app:has(.training-panel){padding-bottom:0}}@media (max-width: 600px){.app{padding:.25rem 0}.app-header{margin-bottom:1rem}.logo-container{gap:.4rem}.logo-icon{width:26px}.logo-text{font-size:1.1rem}.tab-nav{width:100%}.tab-button{flex:1;padding:.75rem .5rem;font-size:.875rem}.selection-panel,.training-panel,.finished-panel,.opening-creator{padding:1rem;border-radius:8px}.board-with-variants{flex-direction:column;align-items:center}.variant-sidebar-wrapper{display:flex;align-items:center;width:100%;gap:0;position:relative}.variant-scroll-arrow{flex-shrink:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:1.4rem;width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;padding:0;line-height:1}.variant-scroll-arrow.left{border-radius:6px 0 0 6px}.variant-scroll-arrow.right{border-radius:0 6px 6px 0}.variant-sidebar{flex-direction:row;overflow-x:auto;overflow-y:hidden;max-height:none!important;max-width:100%;flex:1;min-width:0;-webkit-overflow-scrolling:touch;padding:.25rem 0;scrollbar-width:none}.variant-sidebar.snap-ready{scroll-snap-type:x mandatory}.variant-sidebar::-webkit-scrollbar{display:none}.variant-sidebar-item{flex-shrink:0;white-space:nowrap;min-width:66%;max-width:75%;scroll-snap-align:start;min-height:36px;padding:.3rem .75rem;font-size:.8rem}.variant-sidebar-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-area{flex-direction:column;align-items:center;gap:.5rem}.evaluation-bar{width:100%;height:24px!important;flex-direction:row}.eval-section{height:100%!important;padding-top:0;padding-left:4px;align-items:center;transition:width .3s ease,height 0s}.creator-actions{flex-direction:column}.variant-item{flex-direction:column;align-items:stretch;gap:.75rem}.variant-actions{justify-content:flex-end}.user-menu-trigger{padding:.5rem}.user-name{display:none}.sort-bar{flex-wrap:wrap}.filter-row{flex-direction:column;gap:.5rem}.filter-chips{flex-wrap:wrap}}@media (min-width: 600px) and (max-width: 1024px){.app{padding:1rem}.training-panel,.finished-panel,.opening-creator{max-width:750px}.variant-sidebar{min-width:110px;max-width:150px}.training-controls{min-width:100px;max-width:110px}.training-controls .board-size-slider{display:none}}@media (min-width: 1024px){.app{padding:1.5rem 2rem}}.rotate-overlay{display:none}@media (max-width: 900px) and (orientation: landscape){.rotate-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:var(--color-bg);color:var(--color-text-muted);font-size:1rem;text-align:center;padding:2rem}.rotate-overlay-icon{font-size:3rem;animation:rotate-phone 2s ease-in-out infinite}@keyframes rotate-phone{0%,to{transform:rotate(0)}25%{transform:rotate(-90deg)}75%{transform:rotate(-90deg)}}}.comment-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.comment-section-title{margin-bottom:1rem;font-size:1.2rem;font-weight:700;color:var(--color-text)}.comment-count{font-weight:400;color:var(--color-text-muted)}.comment-error{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-bottom:1rem;border-radius:8px;background-color:#ef444433;border:1px solid var(--color-error);color:var(--color-error-text);font-size:.875rem}.comment-error-dismiss{background:none;border:none;color:inherit;cursor:pointer;font-size:.875rem;padding:.25rem .5rem}.comment-error-dismiss:hover{opacity:.7}.comment-form{margin-bottom:1.5rem}.comment-input{width:100%;padding:.75rem;font-size:1rem;font-family:inherit;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-primary);color:var(--color-text);resize:vertical;min-height:80px}.comment-input:focus{outline:none;border-color:var(--color-primary)}.comment-input:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted);cursor:not-allowed}.comment-input::placeholder{color:var(--color-text-muted)}.comment-form-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.comment-char-count{font-size:.75rem;color:var(--color-text-muted)}.comment-submit-button{padding:.5rem 1rem;min-height:44px;font-size:.875rem;font-weight:500;border:none;border-radius:6px;background-color:var(--color-primary);color:var(--color-text);cursor:pointer;transition:all .2s ease}.comment-submit-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.comment-submit-button:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted);cursor:not-allowed}.comment-list{display:flex;flex-direction:column;gap:1rem}.comment-item{padding:1rem;background-color:var(--color-bg-primary);border-radius:8px}.comment-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.comment-username{font-weight:600;color:var(--color-text)}.comment-date{font-size:.75rem;color:var(--color-text-muted)}.comment-delete-button{margin-left:auto;padding:.25rem .5rem;font-size:.75rem;border:none;border-radius:4px;background-color:#ef444433;color:var(--color-error-text);cursor:pointer;transition:all .2s ease}.comment-delete-button:hover{background-color:#ef444466}.comment-content{color:var(--color-text-secondary);line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.comment-actions{display:flex;gap:.75rem;align-items:center;margin-top:.25rem}.comment-reply-btn{background:none;border:none;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;padding:.5rem .75rem;min-height:36px}.comment-reply-btn:hover{color:var(--color-primary)}.comment-reply-toggle{color:var(--color-primary);cursor:pointer;font-size:.8rem;background:none;border:none;padding:.5rem .75rem;min-height:36px}.comment-reply-toggle:hover{text-decoration:underline}.comment-report-wrapper{position:relative;margin-left:auto}.comment-report-btn{background:none;border:none;color:var(--color-text-muted);font-size:.75rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px}.comment-report-btn:hover{color:var(--color-danger, #ef4444);background-color:#ef44441a}.comment-reported-badge{font-size:.7rem;color:var(--color-text-muted);padding:.15rem .4rem;background-color:#96969626;border-radius:4px}.comment-report-dropdown{position:absolute;right:0;top:100%;background:var(--color-surface, #1e1e2e);border:1px solid var(--color-border, #333);border-radius:6px;padding:.25rem 0;z-index:10;min-width:130px;box-shadow:0 4px 12px #0000004d}.comment-report-option{display:block;width:100%;text-align:left;background:none;border:none;color:var(--color-text);padding:.4rem .75rem;font-size:.8rem;cursor:pointer}.comment-report-option:hover{background-color:#ffffff14}.admin-filter-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-text);cursor:pointer}.admin-filter-toggle input[type=checkbox]{cursor:pointer}.badge-warning{background-color:#f59e0b33;color:#f59e0b;padding:.15rem .5rem;border-radius:4px;font-size:.8rem;font-weight:600}.badge-danger{background-color:#ef444433;color:#ef4444;padding:.15rem .5rem;border-radius:4px;font-size:.8rem;font-weight:600}.comment-replies{margin-left:1.5rem;border-left:2px solid var(--color-border);padding-left:.75rem}.reply-form{margin-left:1.5rem;margin-top:.5rem}.comment-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--color-text-muted);padding:1rem}.comment-load-more{display:block;width:100%;padding:.75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:8px;background-color:transparent;color:var(--color-primary);cursor:pointer;transition:all .2s ease}.comment-load-more:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-primary)}.admin-panel{width:100%;background-color:var(--color-bg-secondary);border-radius:12px;padding:1.5rem}.admin-panel h2{margin-bottom:1rem;text-align:center;font-size:1.4rem;font-weight:700}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.admin-tab-button{padding:.5rem 1rem;font-size:.875rem;border:none;border-radius:6px;cursor:pointer;background-color:transparent;color:var(--color-text-muted);transition:all .2s ease}.admin-tab-button:hover{background-color:var(--color-bg-tertiary);color:var(--color-text)}.admin-tab-button.active{background-color:var(--color-primary);color:var(--color-text)}.admin-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;color:var(--color-text-muted)}.admin-loading:before{content:"";width:28px;height:28px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}.admin-error{padding:.75rem 1rem;margin-bottom:1rem;border-radius:8px;background-color:#ef444433;border:1px solid var(--color-error);color:var(--color-error-text);font-size:.875rem}.admin-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.admin-search{flex:1;min-width:200px;padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-bg-primary);color:var(--color-text)}.admin-search:focus{outline:none;border-color:var(--color-accent)}.admin-search::placeholder{color:var(--color-text-muted)}.admin-filter{padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-bg-primary);color:var(--color-text);cursor:pointer}.admin-count{font-size:.875rem;color:var(--color-text-muted);white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.stat-card{background-color:var(--color-bg-primary);border-radius:8px;padding:1.25rem;text-align:center}.stat-value{font-size:2rem;font-weight:700;color:var(--color-primary)}.stat-label{font-size:.8rem;color:var(--color-text-muted);margin-top:.25rem}.admin-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid var(--color-border)}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-table th,.admin-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.admin-table th{background-color:var(--color-bg-tertiary);font-weight:600;color:var(--color-text);position:sticky;top:0}.admin-table tbody tr:hover{background-color:#0d94880d}.admin-table .row-inactive,.admin-table .row-hidden{opacity:.5}.admin-table .email-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis}.admin-table .content-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-table .actions-cell{display:flex;gap:.25rem;white-space:nowrap}.admin-action-btn{min-height:44px;padding:.5rem .75rem;font-size:.75rem;border:1px solid var(--color-border);border-radius:4px;background-color:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.admin-action-btn:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-text-muted)}.admin-action-btn.danger{border-color:#ef444480;color:var(--color-error-text)}.admin-action-btn.danger:hover{background-color:#ef444433}.admin-action-btn.success{border-color:#22c55e80;color:var(--color-success-text)}.admin-action-btn.success:hover{background-color:#22c55e33}.admin-action-btn.warning{border-color:#f59e0b80;color:var(--color-warning-text)}.admin-action-btn.warning:hover{background-color:#f59e0b33}.admin-likes-cell{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .5rem;border:1px solid transparent;border-radius:6px;background:none;color:var(--color-error-text);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease}.admin-likes-cell:hover{background-color:#fca5a51a;border-color:#fca5a54d}.admin-likes-icon{font-size:.8rem}.admin-likes-value{min-width:1rem;text-align:center}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.admin-pagination button{padding:.5rem 1rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:6px;background-color:transparent;color:var(--color-primary);cursor:pointer;transition:all .2s ease}.admin-pagination button:hover:not(:disabled){background-color:var(--color-bg-tertiary)}.admin-pagination button:disabled{opacity:.4;cursor:not-allowed}.admin-pagination span{font-size:.875rem;color:var(--color-text-muted)}@media (max-width: 600px){.admin-panel{padding:1rem;border-radius:8px}.admin-tabs{flex-wrap:wrap;justify-content:center}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-toolbar{flex-direction:column;align-items:stretch}.admin-search{min-width:unset}.admin-table .actions-cell{flex-direction:column}}.verification-page{display:flex;justify-content:center;align-items:center;min-height:60vh;min-height:60dvh;padding:1rem;box-sizing:border-box}.verification-card{background-color:var(--color-bg-secondary);border-radius:12px;padding:2.5rem;text-align:center;max-width:400px;width:100%;box-sizing:border-box}.verification-card .auth-form{text-align:left}.verification-card .auth-form .verification-button{width:100%;min-height:44px}.verification-icon{font-size:3rem;margin-bottom:1rem}.verification-icon.success{color:var(--color-success)}.verification-icon.error{color:var(--color-error)}.verification-card h2{margin-bottom:.75rem;color:var(--color-text)}.verification-card p{color:var(--color-text-muted);margin-bottom:1rem}.verification-button{padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border:none;border-radius:8px;background-color:var(--color-primary);color:var(--color-text);cursor:pointer;transition:all .2s ease;margin-top:.5rem;-webkit-tap-highlight-color:transparent}.verification-button:hover{background-color:var(--color-primary-hover)}@media (max-width: 600px){.verification-card{padding:1.5rem;border-radius:8px}}.legal-card{background-color:var(--color-bg-secondary);border-radius:12px;padding:2rem;max-width:800px;width:90%;max-height:85vh;display:flex;flex-direction:column}.legal-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.legal-tab{padding:.5rem 1rem;background:none;border:none;color:var(--color-text-muted);font-size:.95rem;cursor:pointer;border-radius:6px 6px 0 0;transition:all .2s ease}.legal-tab.active{color:var(--color-primary);border-bottom:2px solid var(--color-primary);font-weight:600}.legal-tab:hover{color:var(--color-text)}.legal-content{flex:1;overflow-y:auto;margin-bottom:1.5rem;padding-right:.5rem}.legal-text{color:var(--color-text-secondary);line-height:1.7;font-size:.9rem}.legal-text h1{font-size:1.5rem;color:var(--color-text);margin-bottom:.25rem}.legal-text h2{font-size:1.15rem;color:var(--color-text);margin-top:1.5rem;margin-bottom:.5rem}.legal-text h3{font-size:1rem;color:var(--color-text);margin-top:1rem;margin-bottom:.25rem}.legal-text p{margin-bottom:.75rem}.legal-text ul{margin:.5rem 0 .75rem 1.5rem}.legal-text li{margin-bottom:.35rem}.legal-updated{color:var(--color-text-muted);font-size:.85rem;margin-bottom:1.5rem}.footer-separator{margin:0 .5rem}.app-footer{text-align:center;padding:1.5rem 1rem;color:var(--color-text-muted);font-size:.8rem}@media (max-width: 768px){.app-footer{padding-bottom:calc(70px + env(safe-area-inset-bottom) + 1rem)}}.app-footer a{color:var(--color-text-muted);text-decoration:none}.app-footer a:hover{color:var(--color-text-secondary);text-decoration:underline}.terms-checkbox{font-size:.85rem}.terms-checkbox label{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;color:var(--color-text-secondary)}.terms-checkbox input[type=checkbox]{margin-top:.2rem;flex-shrink:0}.terms-checkbox a{color:var(--color-primary);text-decoration:underline}.terms-checkbox a:hover{color:var(--color-primary-hover)}.verification-banner{background-color:#f59e0b26;border:1px solid rgba(245,158,11,.4);border-radius:8px;padding:.75rem 1rem;margin-bottom:.75rem}.verification-banner-content{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.verification-banner-content span{color:var(--color-warning-text);font-size:.875rem}.verification-banner-actions{display:flex;gap:.5rem}.verification-resend-btn{padding:.35rem .75rem;font-size:.8rem;border:1px solid rgba(245,158,11,.5);border-radius:4px;background-color:transparent;color:var(--color-warning-text);cursor:pointer;transition:all .2s ease}.verification-resend-btn:hover:not(:disabled){background-color:#f59e0b33}.verification-resend-btn:disabled{opacity:.5;cursor:not-allowed}.verification-dismiss-btn{padding:.35rem .75rem;font-size:.8rem;border:none;background:none;color:var(--color-text-muted);cursor:pointer}.verification-dismiss-btn:hover{color:var(--color-text)}.verification-banner-message{margin-top:.5rem;font-size:.8rem;color:var(--color-text-muted)}@media (max-width: 600px){.comment-section{margin-top:1rem;padding-top:1rem}.comment-header{flex-wrap:wrap}.comment-delete-button{margin-left:0;margin-top:.25rem}.comment-form-footer{flex-direction:column;align-items:stretch;gap:.5rem}.comment-char-count{text-align:right}.comment-submit-button{width:100%}}.admin-success{background-color:#22c55e26;border:1px solid rgba(34,197,94,.4);color:var(--color-success-text);padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.admin-success button{background:none;border:none;color:var(--color-success-text);cursor:pointer;font-size:.8rem}.sysopening-editor{display:flex;flex-direction:column;gap:1.5rem}.sysopening-form{display:flex;flex-direction:column;gap:1rem}.sysopening-hint{font-size:.85rem;color:var(--color-text-muted);margin:0}@media (max-width: 600px){.sysopening-editor .board-area{justify-content:center}}.camp-container{width:100%}.camp-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem;color:var(--color-text-muted)}.camp-loading:before{content:"";width:32px;height:32px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}.camp-train-all-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:.6rem 1rem;margin-bottom:.75rem;font-size:.9rem;font-weight:600;border:none;border-radius:8px;background-color:var(--color-accent);color:#1a1a2e;cursor:pointer;transition:background-color .15s ease}.camp-train-all-btn:hover{background-color:var(--color-accent-hover)}.opening-card.camp-card{position:relative}.camp-card-remove{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:50%;background-color:#0000008c;color:var(--color-text);font-size:1rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s ease,background-color .15s ease;z-index:2}.opening-card.camp-card:hover .camp-card-remove{opacity:1}.camp-card-remove:hover{background-color:#ef4444d9}.camp-add-toggle{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.65rem;margin-top:.75rem;font-size:.85rem;font-weight:500;border:1px dashed var(--color-border);border-radius:8px;background-color:transparent;color:var(--color-primary);cursor:pointer;transition:all .2s ease}.camp-add-toggle:hover{background-color:#0d948814;border-color:var(--color-primary)}.camp-add-panel{margin-top:.75rem;padding:1rem;background-color:var(--color-bg-primary);border-radius:8px}.camp-add-section{margin-bottom:.75rem}.camp-add-section-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-weight:600;margin-bottom:.5rem}.camp-add-grid.opening-cards-grid{gap:.5rem}.opening-card.camp-add-card{position:relative}.opening-card.camp-add-card.added{opacity:.5;cursor:default;pointer-events:none}.camp-added-badge{position:absolute;top:6px;right:6px;padding:.15rem .4rem;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background-color:var(--color-success);color:var(--color-text);border-radius:4px;z-index:2}.camp-add-empty{text-align:center;color:var(--color-text-muted);padding:1.5rem 1rem;font-style:italic}.right-sidebar-area{display:contents}.camp-bar{display:flex;gap:.375rem;padding:.5rem;margin-bottom:.75rem;background-color:var(--color-bg-secondary);border-radius:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.camp-bar::-webkit-scrollbar{height:4px}.camp-bar::-webkit-scrollbar-track{background:transparent}.camp-bar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.camp-chip{display:flex;align-items:center;gap:.375rem;padding:.4rem .75rem;border:1px solid transparent;border-radius:6px;background-color:var(--color-bg-primary);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;white-space:nowrap;transition:all .15s ease;flex-shrink:0}.camp-chip:hover{background-color:var(--color-bg-tertiary);color:var(--color-text)}.camp-chip.active{background-color:var(--color-primary);color:var(--color-text);border-color:var(--color-primary);font-weight:500}.camp-chip-color{font-size:.9rem}.camp-chip-name{max-width:120px;overflow:hidden;text-overflow:ellipsis}.camp-bar-vertical{flex-direction:column;overflow-x:hidden;overflow-y:auto;margin-bottom:0;padding:.375rem}.camp-bar-vertical .camp-chip{width:100%;flex-shrink:0}.camp-bar-vertical .camp-chip-name{max-width:none}.camp-bar-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:0 .25rem .125rem}@media (min-width: 600px){.right-sidebar-area{display:flex;flex-direction:row;gap:.5rem;align-items:flex-start}.right-sidebar-area .variant-sidebar-wrapper{display:block}}@media (max-width: 600px){.camp-card-remove{opacity:1}.camp-bar{padding:.375rem;gap:.25rem;margin-bottom:.5rem}.camp-chip{padding:.35rem .625rem;font-size:.75rem}.camp-chip-name{max-width:80px}}.png-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:1.25rem;margin-bottom:1rem;border:2px dashed var(--color-border);border-radius:8px;background-color:#0d948808;cursor:pointer;transition:all .2s ease}.png-drop-zone:hover{border-color:var(--color-primary);background-color:#0d948814}.png-drop-zone.drag-over{border-color:var(--color-primary);background-color:#0d948826;border-style:solid}.drop-zone-text{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.drop-zone-hint{font-size:.75rem;color:var(--color-text-muted)}.card-actions{position:absolute;bottom:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s}.opening-card:hover .card-actions{opacity:1}.card-action-btn{font-size:.7rem;padding:3px 8px;border-radius:4px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.card-action-btn:hover{background:var(--color-hover);color:var(--color-text)}.card-action-btn.danger:hover{background:#ef444433;color:var(--color-error-text)}@media (max-width: 600px){.card-actions{opacity:1;bottom:auto;top:4px;right:4px;gap:3px}.card-action-btn{font-size:.6rem;padding:3px 6px;background:#0000008c;border-color:transparent;color:#ffffffe6;border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.card-action-btn.danger{color:#fca5a5}}.settings-modal .modal-content,.settings-modal{max-width:480px}.settings-modal h2{margin-bottom:1.25rem;text-align:center}.settings-section{padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--color-border)}.settings-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.settings-info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.settings-info-label{font-size:.875rem;color:var(--color-text-muted)}.settings-info-value{font-size:.875rem;color:var(--color-text);display:flex;align-items:center;gap:.5rem}.settings-verified-badge{font-size:.7rem;font-weight:600;padding:.15rem .4rem;border-radius:4px;background-color:#22c55e33;color:var(--color-success-text)}.settings-unverified-badge{font-size:.7rem;font-weight:600;padding:.15rem .4rem;border-radius:4px;background-color:#f59e0b33;color:var(--color-warning-text)}.settings-verification-hint{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.settings-resend-btn{font-size:.8rem;padding:.3rem .625rem;border:1px solid rgba(245,158,11,.4);border-radius:4px;background-color:transparent;color:var(--color-warning-text);cursor:pointer;transition:all .2s ease;white-space:nowrap}.settings-resend-btn:hover:not(:disabled){background-color:#f59e0b26}.settings-resend-btn:disabled{opacity:.5;cursor:not-allowed}.settings-verification-msg{font-size:.8rem;color:var(--color-text-muted)}.settings-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem 0;font-size:.95rem;font-weight:500;color:var(--color-text);background:none;border:none;cursor:pointer;transition:color .2s ease}.settings-toggle:hover{color:var(--color-primary)}.settings-toggle-danger{color:var(--color-text-muted)}.settings-toggle-danger:hover{color:var(--color-error-text)}.settings-toggle-arrow{font-size:.625rem;color:var(--color-text-muted)}.settings-haptic-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem 0;font-size:.95rem;color:var(--color-text);cursor:pointer}.settings-haptic-toggle .arrow-toggle{flex-shrink:0}.settings-success{padding:.6rem .75rem;margin-top:.5rem;border-radius:6px;background-color:#22c55e26;color:var(--color-success-text);font-size:.85rem}.settings-delete-content{padding-top:.5rem}.settings-delete-warning{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.75rem;line-height:1.4}.settings-danger-btn{padding:.6rem 1rem;font-size:.85rem;font-weight:500;border:1px solid rgba(239,68,68,.5);border-radius:8px;background-color:#ef444426;color:var(--color-error-text);cursor:pointer;transition:all .2s ease;width:100%}.settings-danger-btn:hover:not(:disabled){background-color:#ef44444d;border-color:var(--color-error)}.settings-danger-btn:disabled{opacity:.6;cursor:not-allowed}.settings-legal{text-align:center;padding-top:1.25rem;margin-top:.5rem;border-top:1px solid var(--color-border)}.settings-legal-link{background:none;border:none;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;padding:.25rem .5rem}.settings-legal-link:hover{color:var(--color-primary);text-decoration:underline}.theme-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:1rem}.theme-option{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.5rem;border:2px solid transparent;border-radius:8px;background:none;cursor:pointer;transition:all .15s ease}.theme-option:hover{border-color:var(--color-border)}.theme-option.active{border-color:var(--color-primary)}.theme-preview{display:flex;border-radius:3px;overflow:hidden}.theme-square{width:20px;height:20px}.theme-label{font-size:.7rem;color:var(--color-text-muted)}.theme-option.active .theme-label{color:var(--color-primary);font-weight:600}.custom-color-row{display:flex;gap:1.5rem;align-items:center}.custom-color-field{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text-muted);cursor:pointer}.custom-color-field input[type=color]{width:32px;height:32px;border:1px solid var(--color-border);border-radius:4px;background:none;cursor:pointer;padding:2px}.avatar-img{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-fallback{border-radius:50%;background-color:var(--color-accent);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0;-webkit-user-select:none;user-select:none}.avatar-sm{width:24px;height:24px;font-size:.7rem}.avatar-md{width:32px;height:32px;font-size:.85rem}.avatar-lg{width:80px;height:80px;font-size:2rem}.settings-avatar-row{display:flex;align-items:center;gap:1rem}.settings-avatar-actions{display:flex;flex-direction:column;gap:.4rem}.consent-update-overlay{z-index:10000}.consent-update-modal{max-width:480px;text-align:center}.consent-update-modal h2{margin-bottom:1rem;color:var(--color-text)}.consent-update-text{color:var(--color-text-secondary);margin-bottom:1.25rem;line-height:1.5}.consent-update-links{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.25rem}.consent-update-links a{color:var(--color-primary-light);text-decoration:underline}.consent-update-links a:hover{color:var(--color-primary)}.consent-update-checkbox{display:flex;align-items:flex-start;gap:.5rem;text-align:left;color:var(--color-text-secondary);margin-bottom:1.25rem;cursor:pointer;font-size:.9rem}.consent-update-checkbox input[type=checkbox]{margin-top:.2rem;flex-shrink:0}.error-boundary-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:2rem;text-align:center;color:var(--color-text-primary)}.error-boundary-fallback h2{font-size:1.5rem;margin-bottom:.75rem}.error-boundary-fallback p{color:var(--color-text-secondary);margin-bottom:1.5rem;max-width:400px}.error-boundary-reload{padding:.6rem 1.5rem;background:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem}.error-boundary-reload:hover{background:var(--color-primary-hover)}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:var(--color-bg-primary);display:flex;align-items:center;justify-content:center}.splash-screen.fade-out{animation:splash-fade .4s ease-out forwards}@keyframes splash-fade{to{opacity:0}}.splash-video{width:100%;height:100%;object-fit:cover}
