.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{--bg-deep: #131520;--bg-surface: #1a1c2e;--bg-elevated: #222438;--bg-hover: #2a2d44;--bg-input: rgba(255, 255, 255, .06);--text-primary: #e8e8ec;--text-secondary: #a0a4b8;--text-muted: #6b7094;--text-dim: #4a4e6a;--accent: #5b7fc7;--accent-hover: #6d8fd4;--accent-subtle: rgba(91, 127, 199, .15);--gold: #c9a84c;--gold-dim: rgba(201, 168, 76, .12);--danger: #e06060;--danger-dim: rgba(224, 96, 96, .12);--opportunity: #5cb85c;--opportunity-dim: rgba(92, 184, 92, .12);--trap: #e8a040;--trap-dim: rgba(232, 160, 64, .12);--thinking: #5ba8e0;--border: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .15);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--font-display: "Playfair Display", Georgia, serif;--transition-fast: .12s ease;--transition-med: .25s ease;--transition-slow: .4s ease;--glow-accent: rgba(91, 127, 199, .12);--glow-gold: rgba(201, 168, 76, .15);--shadow-card: 0 2px 8px rgba(0, 0, 0, .2), 0 1px 3px rgba(0, 0, 0, .15);--shadow-card-hover: 0 4px 16px rgba(0, 0, 0, .3), 0 2px 6px rgba(0, 0, 0, .2);--shadow-glow-accent: 0 0 12px rgba(91, 127, 199, .15);--shadow-glow-gold: 0 0 12px rgba(201, 168, 76, .12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E") repeat,radial-gradient(ellipse 80% 60% at 50% 40%,#1e2035,#131520);background-attachment:fixed;color:var(--text-primary);min-height:100vh;height:100vh;display:flex;justify-content:center;align-items:stretch;padding:24px;line-height:1.5;overflow:hidden}#app{display:flex;gap:28px;max-width:1440px;width:100%;height:calc(100vh - 48px);min-height:0;overflow:hidden}#board-column{flex:1 1 0;min-width:0;min-height:0;height:100%;max-width:calc(100vh - 106px);display:flex;flex-direction:column;gap:10px;overflow:hidden}#board-row{display:flex;flex-shrink:0}#board-scroll{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1;overflow-y:auto;overflow-x:hidden}#eval-bar{width:26px;background:#2b3040;border-radius:var(--radius-sm);overflow:hidden;position:relative;margin-right:8px;flex-shrink:0;box-shadow:inset 0 0 0 1px #ffffff0d}#eval-fill{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,#d0d7de,#e4eaf0);transition:height .5s ease;box-shadow:0 -2px 8px #d8dfe633}#eval-label{position:absolute;left:0;right:0;text-align:center;font-family:var(--font-mono);font-size:10px;font-weight:600;z-index:1;padding:3px 0;bottom:2px;color:#2b3040}#eval-label.black-advantage{bottom:auto;top:2px;color:#d8dfe6}#board{flex:1;min-width:0;aspect-ratio:1;max-height:calc(100vh - 140px);max-width:calc(100vh - 140px);border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 4px 24px #0006,0 8px 48px #0003}cg-board{background-color:#dee3e6;background-image:repeating-conic-gradient(#8ca2ad 0% 25%,#dee3e6 0% 50%);background-size:25% 25%}cg-board square.last-move{background-color:#5b7fc769}cg-board square.selected{background-color:#5b7fc78c}#moves{width:100%;flex:1;min-height:0;overflow-y:auto;background:linear-gradient(to bottom,var(--bg-elevated),#1d1f33);border-radius:var(--radius-md);padding:10px 12px;border:1px solid var(--border);box-shadow:var(--shadow-card),inset 0 1px #ffffff08}#history-toolbar{display:flex;align-items:center;gap:8px;flex-shrink:0}#move-actions{display:flex;gap:6px;flex:1;justify-content:flex-end}#history-lines-toggle{width:fit-content;align-self:flex-start;flex-shrink:0}#history-lines-toggle .segment-btn{padding:5px 12px;font-size:12px}#history-lines-body{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1}.move-list-empty{color:var(--text-dim);font-size:13px;text-align:center;padding:16px;font-style:italic}.move-table{width:100%;display:grid;grid-template-columns:auto 1fr 1fr;font-size:14px}.move-num{color:var(--text-dim);text-align:right;padding:3px 6px;font-family:var(--font-mono);font-size:12px}.move-san{cursor:default;border-radius:var(--radius-sm);padding:3px 6px;font-family:var(--font-mono);font-size:13px;font-weight:500;transition:background var(--transition-fast)}.move-san.clickable{cursor:pointer}.move-san.clickable:hover{background:var(--bg-hover)}#move-actions .btn{font-size:11px;padding:5px 8px;white-space:nowrap}.move-san.active{background:var(--accent-subtle);color:#fff;box-shadow:inset 2px 0 0 var(--accent)}.move-san.rep-hit{color:var(--opportunity)}.move-san.rep-miss{color:var(--danger)}.move-legend{display:flex;gap:12px;padding:0 4px 6px;font-size:11px;color:var(--text-muted)}.move-legend-item{display:flex;align-items:center;gap:4px}.move-legend-dot{width:8px;height:8px;border-radius:50%}.move-legend-dot.hit{background:var(--opportunity)}.move-legend-dot.miss{background:var(--danger)}.ht-tree-btn{float:right;margin-bottom:6px}.ht-pgn{font-family:var(--font-mono);font-size:13px;font-weight:500;line-height:1.8;color:var(--accent)}.ht-num{opacity:.6;font-weight:400}.ht-move{cursor:pointer;padding:2px 4px;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.ht-move:hover{background:var(--bg-hover)}.ht-move.trail{color:var(--text-primary)}.ht-move.active{background:var(--accent-subtle);color:#fff}.ht-variation{display:block;margin-left:16px;padding-left:10px;border-left:2px solid var(--border);color:var(--text-muted);font-weight:400}.ht-variation .ht-variation{font-size:12px}.explorer-move.locked{background:linear-gradient(270deg,#6889d42e,#6889d412 30%,#6889d405);border-color:#6889d473;box-shadow:inset 3px 0 #6889d48f}.explorer-move.locked:hover{background:linear-gradient(270deg,#6889d440,#6889d41a 30%,#6889d40a);border-color:#6889d48c;box-shadow:inset 3px 0 #6889d4b3}.explorer-move.played{background:linear-gradient(270deg,#c9a84c24,#c9a84c0d 30%,#c9a84c03);border-color:#c9a84c40}.explorer-move.played:hover{background:linear-gradient(270deg,#c9a84c33,#c9a84c14 30%,#c9a84c05);border-color:#c9a84c59}.explorer-move.locked .explorer-san{color:#8ab4e8}.explorer-move.played .explorer-san{color:#e8d5a0}.engine-star{font-size:13px;line-height:1}.engine-star-gold{color:#d4a838}.engine-star-silver{color:#a0a4b8}.engine-star-bronze{color:#b07840}#left-sidebar,#right-sidebar{flex:1;min-width:300px;max-width:400px;min-height:0;height:100%;display:flex;flex-direction:column;gap:16px;background:linear-gradient(to bottom,#1a1c2e99,#13152066);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.04);border-radius:var(--radius-lg);padding:16px;overflow:hidden}#right-sidebar{overflow-y:auto;overflow-x:hidden}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:-4px}.sidebar-header-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text-secondary);letter-spacing:.01em}.sidebar-header .btn.icon{width:28px;height:28px;font-size:13px;font-weight:700;color:var(--text-muted);border:1px solid var(--border);border-radius:50%;background:var(--bg-elevated)}.sidebar-header .btn.icon:hover{color:var(--text-primary);border-color:var(--border-hover);background:var(--bg-hover)}.sidebar-section{display:flex;flex-direction:column;gap:8px}.sidebar-section+.sidebar-section{padding-top:4px}.sidebar-section-games{flex:1;min-height:0}.sidebar-section-header{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.help-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:520px;max-width:92vw;max-height:85vh;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);z-index:101;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000080;animation:modal-in .2s ease-out}.help-modal.hidden{display:none}.help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.help-modal-header h2{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text-primary)}.help-modal-body{padding:16px 20px 20px;overflow-y:auto;font-size:13px;line-height:1.7;color:var(--text-secondary)}.help-modal-body h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-primary);margin:16px 0 6px}.help-modal-body h3:first-child{margin-top:0}.help-modal-body p{margin-bottom:8px}.help-modal-body ol,.help-modal-body ul{padding-left:20px;margin-bottom:8px}.help-modal-body li{margin-bottom:4px}.help-modal-body kbd{display:inline-block;padding:1px 6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;color:var(--text-primary)}.help-modal-body .help-color{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-right:4px}.help-shortcuts{width:100%;border-collapse:collapse}.help-shortcuts td{padding:4px 8px;border-bottom:1px solid var(--border);font-size:13px}.help-shortcuts td:first-child{white-space:nowrap;width:120px;color:var(--text-secondary)}#system-picker{display:flex;flex-direction:column;gap:6px}#opening-lines{width:100%;flex:1;min-height:0;max-height:none;overflow-y:auto}#opening-lines-pgn{background:linear-gradient(to bottom,var(--bg-elevated),#1d1f33);border-radius:var(--radius-md);padding:10px 12px;border:1px solid var(--border);box-shadow:var(--shadow-card),inset 0 1px #ffffff08}.system-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-card);transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-med),transform var(--transition-fast);position:relative}.system-card:hover{border-color:var(--border-hover);background:var(--bg-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.system-card.active{border-color:var(--accent);background:var(--accent-subtle);box-shadow:var(--shadow-card),var(--shadow-glow-accent)}.system-card-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px}.system-card-icon.free-play,.system-card-icon.full-rep,.system-card-icon.custom{background:var(--accent-subtle);color:var(--accent)}.system-card-name{flex:1;font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.system-card.active .system-card-name{color:#fff}.system-card-check{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-hover);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.system-card.active .system-card-check,.system-card-check.checked{background:var(--accent);border-color:var(--accent)}.system-card.active .system-card-check svg,.system-card-check.checked svg{opacity:1}.system-card-check svg{width:10px;height:10px;fill:#fff;opacity:0}.system-card-actions{display:flex;gap:2px;flex-shrink:0}.system-card-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;padding:0;transition:color var(--transition-fast),background var(--transition-fast)}.system-card-action-btn svg{width:13px;height:13px;fill:currentColor}.system-card-action-btn:hover{color:var(--text-primary);background:#ffffff14}.system-card-action-btn.danger:hover{color:var(--danger);background:var(--danger-dim)}.system-icon-btn{width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast);padding:0}.system-icon-btn:hover{background:#ffffff14;color:var(--text-primary)}.system-icon-btn.danger:hover{background:var(--danger-dim);color:var(--danger)}.system-icon-btn svg{width:14px;height:14px;fill:currentColor}.system-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:transparent;border:1px dashed var(--border-hover);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:500;transition:all var(--transition-fast);width:100%}.system-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.system-add-btn svg{width:14px;height:14px;fill:currentColor}.system-dropdown-chevron{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s ease;color:var(--text-muted)}.system-dropdown-chevron svg{width:18px;height:18px;fill:currentColor}.system-dropdown-chevron.open{transform:rotate(180deg)}.system-dropdown-anchor{position:relative}.system-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;display:flex;flex-direction:column;gap:2px;padding:4px;margin-top:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0006;animation:dropdown-in .15s ease-out}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.system-dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.system-dropdown-item:hover{background:var(--bg-hover)}.system-dropdown-item .system-card-name{font-weight:500;color:var(--text-secondary)}.system-dropdown-item:hover .system-card-name{color:var(--text-primary)}.system-dropdown-divider{height:1px;background:var(--border);margin:4px 8px}.system-dropdown-add{color:var(--text-muted);gap:10px}.system-dropdown-add:hover,.system-dropdown-add:hover .system-card-name{color:var(--accent)}.system-card-rename-input{flex:1;min-width:0;padding:2px 6px;background:var(--bg-elevated);border:1px solid var(--accent);border-radius:var(--radius-sm);color:#fff;font-family:var(--font-sans);font-size:13px;font-weight:600;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.system-card-rename-input:focus{border-color:var(--accent-hover);box-shadow:0 0 0 2px #5b7fc733}.confirm-overlay{position:fixed;inset:0;z-index:9000;background:#0000008c;display:flex;align-items:center;justify-content:center;animation:confirm-in .15s ease}.confirm-overlay.anchored{background:transparent;display:block}.confirm-modal{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-lg);padding:20px 24px;min-width:300px;max-width:420px;box-shadow:0 8px 32px #00000080}.confirm-title{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:6px}.confirm-title.danger{color:var(--danger)}.confirm-message{font-size:13px;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.confirm-title+.confirm-actions{margin-top:16px}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.confirm-actions .btn{padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;transition:background var(--transition-fast)}.confirm-actions .btn:hover{background:var(--bg-hover)}.confirm-actions .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.confirm-actions .btn-primary:hover{background:var(--accent-hover)}.confirm-actions .btn-danger{background:#e0606033;border-color:#e0606066;color:var(--danger)}.confirm-actions .btn-danger:hover{background:#e0606059}.confirm-actions.vertical{flex-direction:column;gap:6px}.confirm-actions.vertical .btn{width:100%;text-align:center;padding:8px 14px}.confirm-actions.vertical .btn-cancel-vertical{background:transparent;border-color:transparent;color:var(--text-muted);margin-top:4px}.confirm-actions.vertical .btn-cancel-vertical:hover{color:var(--text-secondary);background:transparent}@keyframes confirm-in{0%{opacity:0}to{opacity:1}}.confirm-overlay.anchored .confirm-modal{animation:confirm-drop-in .15s ease-out}@keyframes confirm-drop-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.system-dropdown-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:6px 10px 4px}.system-dropdown-cancel{color:var(--text-muted);border-top:1px solid var(--border);margin-top:2px;padding-top:8px}.system-dropdown-cancel:hover,.system-dropdown-cancel:hover .system-card-name{color:var(--text-secondary)}#status{min-height:72px}.game-info-banner{display:flex;align-items:center;gap:8px;padding:6px 10px;margin-bottom:8px;background-color:var(--bg-elevated);background-image:linear-gradient(var(--accent-subtle),var(--accent-subtle));border:1px solid rgba(91,127,199,.3);border-radius:var(--radius-md);position:sticky;top:0;z-index:1;cursor:pointer}.game-info-result{flex-shrink:0;font-size:11px;font-family:var(--font-mono);font-weight:700;width:22px;text-align:center;padding:2px 0;border-radius:4px;border:1px solid;line-height:1}.game-info-result.win{color:#9ad79a;border-color:#78cc7873;background:#78cc781f}.game-info-result.draw{color:#9fbbe9;border-color:#7ba3dd73;background:#7ba3dd1f}.game-info-result.loss{color:#efb6b6;border-color:#d766667a;background:#d766661f}.game-info-details{flex:1;font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-info-dismiss{flex-shrink:0;background:none;border:none;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;padding:6px 10px;margin:-6px -10px -6px 0;transition:color var(--transition-fast)}.game-info-dismiss:hover{color:var(--text-primary)}.opening-name{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--gold);margin-bottom:4px;line-height:1.3;text-shadow:0 0 20px rgba(201,168,76,.25)}.turn-indicator{font-size:14px;color:var(--text-secondary);font-weight:500}.turn-indicator.thinking{color:var(--thinking);animation:pulse-thinking 1.5s ease-in-out infinite}@keyframes pulse-thinking{0%,to{opacity:1}50%{opacity:.5}}.turn-indicator.out-of-book{color:var(--danger)}.turn-indicator.game-over{color:var(--gold);font-weight:700}.status-row{display:flex;align-items:center;gap:12px}.move-counter{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);font-weight:500}.rep-depth{margin-top:8px;height:20px;background:var(--bg-elevated);border-radius:10px;overflow:hidden;position:relative;border:1px solid var(--border)}.rep-depth-bar{position:absolute;top:0;left:0;height:100%;background:linear-gradient(270deg,#5cb85c4d,#5cb85c26);border-radius:10px;transition:width var(--transition-med)}.rep-depth-label{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);font-weight:500}.segment-picker{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface)}.segment-btn{padding:7px 16px;border:none;border-right:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;transition:all var(--transition-fast)}.segment-btn:last-child{border-right:none}.segment-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.segment-btn.selected{background:var(--accent);color:#fff}.segment-picker.segment-sm{border-radius:999px;background:transparent}.segment-picker.segment-sm .segment-btn{padding:3px 10px;min-height:0;font-size:11px;line-height:1.25;white-space:nowrap}.segment-picker.segment-sm .segment-btn.selected{background:var(--accent-subtle);color:var(--accent-hover);box-shadow:0 0 8px #5b7fc71f}.explorer-header{display:grid;grid-template-columns:46px 22px 64px 36px 1fr 30px;gap:4px;padding:0 11px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.explorer-list{display:flex;flex-direction:column;gap:3px}.explorer-move{display:grid;grid-template-columns:46px 22px 64px 36px 1fr 30px;align-items:center;gap:4px;padding:7px 10px;background:linear-gradient(270deg,#8ca0d21a,#8ca0d208 35%,#8ca0d203);border:1px solid rgba(140,160,210,.1);border-radius:var(--radius-sm);font-size:13px;cursor:pointer;height:40px;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.explorer-move:hover{background:linear-gradient(270deg,#8ca0d224,#8ca0d20d 35%,#8ca0d205);border-color:#8ca0d22e}.explorer-move.empty-row{cursor:default;pointer-events:none}.explorer-move.empty-row:hover{transform:none}.skeleton-bar{display:inline-block;height:10px;border-radius:3px;background:var(--text-dim);opacity:.08}.explorer-skeleton{cursor:pointer;position:relative}.explorer-move.skeleton-row{background:linear-gradient(90deg,#ffffff03,#ffffff0a,#ffffff03);background-size:200% 100%;animation:skeleton-shimmer 1.8s ease-in-out infinite;cursor:pointer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.explorer-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:14px;font-weight:600;pointer-events:none;letter-spacing:.03em;text-shadow:0 1px 8px rgba(0,0,0,.4);animation:hint-pulse 2.5s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:.7}50%{opacity:1}}.explorer-san{font-family:var(--font-mono);font-weight:600;font-size:13px}.explorer-pct{position:relative;height:20px;background:#ffffff0d;border-radius:3px;overflow:hidden}.pct-fill{position:absolute;inset:0;width:0;background:#81b2d240;border-radius:3px;transition:width .3s ease}.pct-label{position:relative;z-index:1;display:flex;align-items:center;height:100%;padding:0 5px;font-family:var(--font-mono);font-size:11px;color:var(--text-primary);white-space:nowrap}.explorer-games{color:var(--text-secondary);font-size:10px;white-space:nowrap}.explorer-bar{flex:1;height:20px;background:#2a2a2a;border-radius:3px;overflow:hidden;display:flex;min-width:0}.bar-win,.bar-draw,.bar-loss{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-family:var(--font-mono);overflow:hidden;white-space:nowrap;border:1px solid transparent;border-left-width:0;border-right-width:0;background-clip:padding-box}.bar-win:first-child,.bar-draw:first-child,.bar-loss:first-child{border-left-width:1px;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.bar-win:last-child,.bar-draw:last-child,.bar-loss:last-child{border-right-width:1px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.bar-win:first-child:last-child,.bar-draw:first-child:last-child,.bar-loss:first-child:last-child{border-radius:var(--radius-sm)}.bar-win{background:#78cc781f;border-color:#78cc7873;color:#9ad79a}.bar-draw{background:#949caa29;border-color:#949caa73;color:#c3cad3}.bar-loss{background:#d766661f;border-color:#d766667a;color:#efb6b6}.bar-white,.bar-draw-neutral,.bar-black,.bar-piece-white,.bar-piece-black{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-family:var(--font-mono);overflow:hidden;white-space:nowrap}.bar-white,.bar-piece-white{background:#d8dfe6;color:#333}.bar-draw-neutral{background:#7a8a96;color:#222;border-left:1px solid rgba(0,0,0,.15);border-right:1px solid rgba(0,0,0,.15)}.bar-black,.bar-piece-black{background:#2b3040;color:#bbb}.lock-btn{background:none;border:none;cursor:pointer;padding:2px;border-radius:var(--radius-sm);opacity:.4;transition:opacity var(--transition-fast),transform var(--transition-fast);margin-left:auto;display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-secondary)}.lock-btn:hover{opacity:1;transform:scale(1.1)}.lock-btn.locked{opacity:1;color:var(--accent);filter:drop-shadow(0 0 4px rgba(91,127,199,.3))}.explorer-move.played .lock-btn{color:#e8d5a0;filter:none}.lock-btn svg{width:14px;height:14px;fill:currentColor}#controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#controls .btn-primary{margin-left:auto}.btn{padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(to bottom,var(--bg-elevated),#1e2030);color:var(--text-primary);cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;box-shadow:var(--shadow-card),inset 0 1px #ffffff0a;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.btn:hover{background:linear-gradient(to bottom,var(--bg-hover),var(--bg-elevated));border-color:var(--border-hover);box-shadow:var(--shadow-card-hover),inset 0 1px #ffffff0a}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(to bottom,#6b8fd4,#4a6db5);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-card),var(--shadow-glow-accent),inset 0 1px #ffffff1a}.btn-primary:hover{background:linear-gradient(to bottom,#7a9be0,#5a7dc5);border-color:var(--accent-hover);box-shadow:var(--shadow-card-hover),0 0 16px #5b7fc740,inset 0 1px #ffffff1f}.btn-danger{background:linear-gradient(to bottom,#c45b5b,#a33a3a);border-color:var(--danger);color:#fff}.btn-danger:hover{background:linear-gradient(to bottom,#d06a6a,#b34a4a)}.btn.outline{background:transparent;border-color:var(--accent);color:var(--accent);box-shadow:none}.btn.outline:hover{background:var(--accent-subtle);border-color:var(--accent-hover);color:var(--accent-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted);box-shadow:none;padding:6px 10px}.btn.ghost:hover{background:var(--bg-hover);color:var(--text-secondary)}.btn.sm{padding:5px 10px;font-size:12px}.btn.icon{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn.icon.sm{width:28px;height:28px}.btn:disabled{opacity:.4;pointer-events:none}.config-body{margin-top:10px;padding:0 4px}.config-body.collapsed{display:none}.hidden{display:none!important}.config-section{margin-bottom:14px}.config-section h3{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.chip-grid{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 10px;border:1px solid var(--border);border-radius:14px;background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:500;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.chip:hover{border-color:var(--border-hover);color:var(--text-secondary);background:var(--bg-hover)}.chip.selected{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-hover);box-shadow:0 0 8px #5b7fc71f}.stat{display:inline-block;padding:2px 8px;border-radius:10px;background:var(--bg-hover);font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--text-muted);-webkit-user-select:none;user-select:none}.stat.good{color:var(--opportunity);background:var(--opportunity-dim)}.stat.bad{color:var(--danger);background:var(--danger-dim)}.stat.warn{color:var(--trap);background:var(--trap-dim)}.checkbox-grid{display:flex;flex-wrap:wrap;gap:6px}.checkbox-grid label{font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px;color:var(--text-secondary);transition:color var(--transition-fast)}.checkbox-grid label:hover{color:var(--text-primary)}.checkbox-grid input[type=checkbox]{accent-color:var(--accent)}.toggle-label{font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--text-secondary);transition:color var(--transition-fast)}.toggle-label:hover{color:var(--text-primary)}.toggle-label input[type=checkbox]{accent-color:var(--accent)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:var(--bg-hover);border-radius:3px;outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--bg-deep);box-shadow:0 1px 4px #0000004d;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 0 0 4px #5b7fc733}input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--bg-deep);box-shadow:0 1px 4px #0000004d;transition:transform var(--transition-fast)}input[type=range]::-moz-range-track{height:6px;background:var(--bg-hover);border-radius:3px}.position-alert{padding:8px 12px;border-radius:var(--radius-md);font-size:13px;font-weight:600;margin-bottom:6px;border-left:3px solid;animation:alert-slide-in .3s ease-out}@keyframes alert-slide-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.position-alert.clickable{cursor:pointer}.position-alert.clickable:hover{filter:brightness(1.1)}.alert-danger{border-color:var(--danger);color:var(--danger);background:var(--danger-dim)}.alert-opportunity{border-color:var(--opportunity);color:var(--opportunity);background:var(--opportunity-dim)}.alert-trap{border-color:var(--trap);color:var(--trap);background:var(--trap-dim)}#engine-lines{width:100%;background:linear-gradient(to bottom,var(--bg-elevated),#1d1f33);border-radius:var(--radius-md);padding:6px 8px;border:1px solid var(--border);box-shadow:var(--shadow-card),inset 0 1px #ffffff08;display:flex;flex-direction:column;gap:2px}#engine-lines:empty{display:none}.engine-lines-header{display:flex;align-items:center;gap:6px;padding:0 2px 4px;position:relative}.engine-lines-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);flex:1}.engine-lines-cog-wrap{position:relative}.engine-lines-cog{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-fast),background var(--transition-fast)}.engine-lines-cog:hover{color:var(--text-secondary);background:var(--bg-hover)}.engine-lines-config{position:absolute;bottom:calc(100% + 4px);right:0;display:flex;flex-direction:column;gap:2px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:4px;box-shadow:0 8px 24px #0006;z-index:10;min-width:80px}.engine-lines-config.hidden{display:none}.engine-lines-config-opt{border:none;border-radius:4px;background:transparent;color:var(--text-muted);font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;padding:4px 8px;text-align:left;white-space:nowrap;transition:all var(--transition-fast)}.engine-lines-config-opt:hover{background:var(--bg-hover);color:var(--text-secondary)}.engine-lines-config-opt.selected{background:var(--accent-subtle);color:var(--accent-hover)}.engine-line{display:grid;grid-template-columns:20px 52px 1fr;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;transition:background var(--transition-fast)}.engine-line:hover{background:var(--bg-hover)}.engine-line-best{background:#ffffff08}.engine-line-rank{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);text-align:center}.engine-line-eval{font-family:var(--font-mono);font-size:12px;font-weight:700;text-align:right}.engine-line-eval.positive{color:var(--text-primary)}.engine-line-eval.negative{color:var(--text-muted)}.engine-line-eval.neutral{color:var(--text-secondary)}.engine-line-moves{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.explorer-badge-col{display:flex;align-items:center;justify-content:flex-start;gap:1px;width:22px;min-height:20px}.move-badge{font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:1;flex-shrink:0}.badge-best{color:var(--opportunity)}.badge-blunder{color:var(--danger)}.badge-trap{color:var(--trap)}.history-badge{font-family:var(--font-mono);font-size:11px;font-weight:700;margin-left:2px}.config-subtoggle{margin-top:8px;font-size:12px;padding:6px 10px}#moves::-webkit-scrollbar,#explorer-moves::-webkit-scrollbar,#board-scroll::-webkit-scrollbar,#left-sidebar::-webkit-scrollbar,#right-sidebar::-webkit-scrollbar{width:6px}#moves::-webkit-scrollbar-track,#explorer-moves::-webkit-scrollbar-track,#board-scroll::-webkit-scrollbar-track,#left-sidebar::-webkit-scrollbar-track,#right-sidebar::-webkit-scrollbar-track{background:transparent}#moves::-webkit-scrollbar-thumb,#explorer-moves::-webkit-scrollbar-thumb,#board-scroll::-webkit-scrollbar-thumb,#left-sidebar::-webkit-scrollbar-thumb,#right-sidebar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}#moves::-webkit-scrollbar-thumb:hover,#explorer-moves::-webkit-scrollbar-thumb:hover,#board-scroll::-webkit-scrollbar-thumb:hover,#left-sidebar::-webkit-scrollbar-thumb:hover,#right-sidebar::-webkit-scrollbar-thumb:hover{background:#fff3}.drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:100;opacity:0;transition:opacity var(--transition-med);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer-overlay.visible{opacity:1}#config-inline{display:flex;flex-direction:column;gap:10px}.config-toggle-section{display:flex;flex-direction:column;gap:6px}.config-toggle-header{display:flex;align-items:center;gap:6px}.config-toggle-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.info-icon-wrap{position:relative;display:flex;align-items:center;color:var(--text-dim);cursor:help;transition:color var(--transition-fast)}.info-icon-wrap:hover{color:var(--text-secondary)}.info-tooltip{display:none}.info-tooltip b{color:var(--text-primary);font-weight:600}.explorer-cog-wrap{position:relative;margin-left:auto;flex-shrink:0}.explorer-cog-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-fast),background var(--transition-fast)}.explorer-cog-btn:hover{color:var(--text-secondary);background:var(--bg-hover)}.explorer-cog-popover{padding:10px;display:flex;flex-direction:column;gap:10px}.cog-popover-divider{border:none;border-top:1px solid var(--border);margin:2px 0}.cog-popover-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.explorer-cog-popover input[type=range]{width:100%;margin:2px 0 0}.explorer-cog-popover .segment-picker{width:100%}.explorer-cog-popover .segment-btn{flex:1}.tooltip-popup{position:fixed;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000080;font-size:12px;font-weight:400;line-height:1.5;color:var(--text-secondary);white-space:nowrap;z-index:200;pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}.tooltip-popup.visible{opacity:1}.tooltip-popup.tooltip-wide{white-space:normal;width:240px}.tooltip-popup.tooltip-preline{white-space:pre-line}.tooltip-popup b{color:var(--text-primary);font-weight:600}#sidebar-tabs{display:flex;margin:0 0 -12px}#sidebar-tabs .segment-btn{flex:1;text-align:center}.tab-panel.hidden{display:none}.tree-modal-overlay{position:fixed;inset:0;z-index:1000;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:24px}.tree-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:95vw;max-height:90vh;width:100%;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080}.tree-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.tree-modal-header h2{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--text-primary)}.tree-modal-body{overflow:auto;padding:12px;flex:1;min-height:0}.pgn-line{font-family:var(--font-mono);font-size:13px;line-height:1.7;padding:4px 0}.pgn-number{color:var(--text-dim);font-size:12px;margin-right:1px;-webkit-user-select:none;user-select:none}.pgn-move{display:inline-block;font-weight:500;color:var(--text-primary);padding:1px 4px;border-radius:var(--radius-sm);cursor:pointer;margin-right:2px;transition:background var(--transition-fast),color var(--transition-fast)}.pgn-move:hover{background:var(--accent-subtle);color:var(--accent-hover)}.pgn-variation{display:block;padding-left:16px;border-left:2px solid var(--border);margin:2px 0 2px 8px;color:var(--text-secondary)}.pgn-variation .pgn-move{color:var(--text-secondary);font-weight:400}.pgn-variation .pgn-move:hover{color:var(--accent-hover)}.tree-empty{color:var(--text-dim);font-size:13px;padding:16px 12px;font-style:italic;line-height:1.5}.repertoire-subway-wrap{border:none;background:transparent;padding:8px;overflow:visible;align-items:stretch}.repertoire-subway-caption{align-self:stretch}.repertoire-subway-svg{display:block;margin:0}.line-lab-subway-wrap{display:flex;flex-direction:column;gap:8px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;background:linear-gradient(270deg,#ffffff06,#ffffff03)}.line-lab-subway-caption{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.line-lab-subway-svg{display:block;width:auto;height:auto;max-width:none}.line-lab-subway-svg-vertical{max-width:none}.line-lab-subway-edge{fill:none;stroke:#ffffff42;stroke-width:1.55;stroke-linecap:round}.line-lab-subway-edge.active{stroke:#5b7fc7f0;stroke-width:2.35}.line-lab-subway-node{fill:#ffffff5c;stroke:#181818ad;stroke-width:.8;cursor:pointer;transition:fill .12s ease,transform .12s ease}.line-lab-subway-node.active{fill:var(--accent)}.line-lab-subway-label-bg{fill:#080b11e6;stroke:#ffffff29;stroke-width:.8;cursor:pointer}.line-lab-subway-label-bg.active{fill:#111c2ff0;stroke:#5b7fc773}.line-lab-subway-label-bg.selected{fill:#1a273efa;stroke:#5b7fc7d1}.line-lab-subway-label{font-size:11px;fill:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;-webkit-user-select:none;user-select:none;pointer-events:none}.line-lab-subway-label.active{fill:var(--text-primary)}.line-lab-subway-label.selected{fill:var(--text-primary);font-weight:600}.line-lab-subway-stop.merged .line-lab-subway-label-bg{stroke-dasharray:3 2}.pgn-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:480px;max-width:90vw;max-height:80vh;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);z-index:101;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000080;animation:modal-in .2s ease-out}.pgn-modal.hidden{display:none}@keyframes modal-in{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.pgn-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.pgn-modal-header h2{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text-primary)}.pgn-modal-body{padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px}.study-url-row{display:flex;gap:8px}.study-url-row input{flex:1;padding:8px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.study-url-row input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #5b7fc733,0 0 12px #5b7fc71a}.study-url-row input::placeholder{color:var(--text-dim)}.study-url-row .btn{flex-shrink:0}.pgn-separator{text-align:center;color:var(--text-dim);font-size:12px;position:relative}.pgn-separator span{background:var(--bg-card);padding:0 10px;position:relative;z-index:1}.pgn-separator:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border)}#pgn-textarea{width:100%;min-height:180px;padding:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;resize:vertical;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}#pgn-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #5b7fc733,0 0 12px #5b7fc71a}#pgn-textarea::placeholder{color:var(--text-dim)}.pgn-result{font-size:13px;line-height:1.5;min-height:20px}.pgn-result.success{color:var(--opportunity)}.pgn-result.error{color:var(--danger)}.pgn-modal-actions{display:flex;gap:8px;justify-content:flex-end}.repertoire-primary-row{display:flex;gap:8px}.repertoire-primary-row .btn{display:flex;align-items:center;gap:6px;flex:1;justify-content:center;font-size:12px}.repertoire-primary-row .btn svg{flex-shrink:0}.overflow-btn-wrap{position:relative}.overflow-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000004d;z-index:100;padding:4px 0;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.overflow-menu.visible{opacity:1;transform:translateY(0);pointer-events:auto}.overflow-menu-item{display:block;width:100%;padding:8px 14px;background:none;border:none;color:var(--text-secondary);font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.overflow-menu-item:hover{background:var(--bg-hover);color:var(--text-primary)}.overflow-menu-item:disabled{opacity:.35;cursor:default}.library-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:720px;max-width:92vw;max-height:85vh;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);z-index:101;display:flex;flex-direction:column;box-shadow:0 20px 60px #0009;animation:modal-in .2s ease-out}.library-modal.hidden{display:none}.library-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.library-modal-header h2{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text-primary)}.library-modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column}#library-list-area{display:flex;flex-direction:column;gap:12px;padding:16px 20px 12px;overflow:hidden;flex:1}#library-search{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);flex-shrink:0}#library-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px #5b7fc733,0 0 12px #5b7fc71a}#library-search::placeholder{color:var(--text-dim)}.library-results{flex:1;min-height:0;overflow-y:auto;border-radius:var(--radius-md);display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-auto-rows:min-content;gap:8px;align-content:start;padding:2px}.library-results::-webkit-scrollbar{width:5px}.library-results::-webkit-scrollbar-track{background:transparent}.library-results::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}.library-results::-webkit-scrollbar-thumb:hover{background:#ffffff26}.library-item{display:flex;flex-direction:column;cursor:pointer;border-radius:var(--radius-md);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-card);transition:border-color var(--transition-fast),box-shadow var(--transition-med),transform var(--transition-fast);position:relative;isolation:isolate}.library-item:hover{border-color:var(--border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.library-mini-board{width:100%;aspect-ratio:1;position:relative;overflow:hidden}.library-mini-board cg-board{position:absolute;inset:0;display:block}.library-mini-board piece{background-size:cover;z-index:2;pointer-events:none}.library-item-info{padding:8px 10px 6px;display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.library-name{font-size:12px;font-weight:500;color:var(--text-primary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.library-meta{font-size:10px;color:var(--text-dim)}.library-status{font-size:12px;color:var(--text-dim);flex-shrink:0;padding-bottom:4px}.library-empty{grid-column:1 / -1;padding:40px 24px;text-align:center;color:var(--text-dim);font-size:13px}.library-categories{grid-column:1 / -1;display:flex;flex-direction:column;gap:6px;padding:8px 0}.library-category{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-card);transition:all var(--transition-fast),box-shadow var(--transition-med),transform var(--transition-fast);text-align:left;font-family:var(--font-sans);color:var(--text-primary)}.library-category:hover{border-color:var(--border-hover);background:var(--bg-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.library-category-label{font-family:var(--font-mono);font-size:14px;font-weight:600}.library-category-count{font-size:12px;color:var(--text-muted)}.library-show-more{grid-column:1 / -1;display:block;width:100%;padding:12px;margin-top:4px;background:none;border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--font-sans);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.library-show-more:hover{border-color:var(--border-hover);color:var(--text-secondary);background:var(--bg-hover)}.library-detail{display:flex;flex-direction:column;padding:16px 20px 20px;gap:14px;overflow:hidden;flex:1}.library-detail.hidden{display:none}.library-detail-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--text-primary);line-height:1.3}.library-detail-content{display:flex;flex-direction:column;align-items:center;gap:10px;flex:1;min-height:0}.library-detail-board{width:min(400px,100%);aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 12px #0006}.library-detail-board cg-wrap{width:100%!important;height:100%!important}.library-detail-nav{display:flex;gap:4px;justify-content:center}.library-detail-counter{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);min-width:48px;text-align:center;-webkit-user-select:none;user-select:none}.library-detail-content>.btn{width:100%;padding:10px;font-size:14px}.library-detail-content>.btn.added{background:var(--opportunity-dim);border-color:var(--opportunity);color:var(--opportunity)}#mobile-tabs,.mobile-panel{display:none}.database-info-bar,.personal-color-picker{display:flex;align-items:center;gap:6px;padding:4px 0 8px;min-height:36px;box-sizing:border-box}.database-info-bar{padding-left:10px;font-size:11px;color:var(--text-secondary)}.personal-color-picker .segment-picker{margin-right:auto}.database-opening-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-primary)}.database-opening-name.text-muted{color:var(--text-muted);font-weight:400}.database-game-count{color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap}.personal-info-bar{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:4px 10px 8px;min-height:30px;font-size:11px;color:var(--text-secondary)}.personal-info-bar .personal-info-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.personal-info-bar .personal-info-text .personal-username{color:var(--accent);font-weight:500}.personal-info-bar button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;font-size:11px;transition:color var(--transition-fast);display:flex;align-items:center;gap:2px}.personal-info-bar button:hover{color:var(--text-primary)}.personal-info-bar button.danger:hover{color:var(--danger)}.personal-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:12px;color:var(--text-muted);font-size:13px;text-align:center}.personal-empty-state .btn{margin-top:4px}.personal-platform-toggle{margin-bottom:12px}.personal-username-row{display:flex;gap:8px;margin-bottom:12px}.personal-username-row input{flex:1;padding:8px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:13px}.personal-username-row input:focus{outline:none;border-color:var(--accent)}.personal-import-progress{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.personal-import-progress.hidden{display:none}.personal-progress-bar{height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden}.personal-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width var(--transition-med);width:0%}.personal-progress-fill.indeterminate{width:30%;animation:progress-slide 1.5s ease-in-out infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.personal-progress-text{font-size:12px;color:var(--text-secondary)}.personal-filters{margin-bottom:12px}.personal-filter-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.personal-speed-chips{gap:4px}.personal-speed-chips .chip{padding:4px 10px;font-size:12px}.import-range-row{display:flex;align-items:center;gap:6px}.import-range-picker{display:flex;flex:1}.import-range-picker .segment-btn{flex:1;text-align:center}.import-range-text{font-size:12px;color:var(--text-secondary)}.personal-months-input{width:52px;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px;font-size:12px;font-family:var(--font-mono);text-align:center}.personal-months-input:focus{outline:none;border-color:var(--accent)}.personal-months-input::placeholder{color:var(--text-dim)}.personal-info-wrap{position:relative;z-index:10}.personal-filter-panel{position:absolute;top:100%;left:0;right:0;z-index:50;padding:8px 10px 10px;margin-top:4px;display:flex;flex-direction:column;gap:8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0006;animation:dropdown-in .15s ease-out}.personal-filter-section{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.personal-filter-panel .chip-grid{gap:4px}.chip.chip-sm{padding:3px 8px;font-size:11px;border-radius:12px}.personal-filter-range{display:flex;align-items:center;gap:6px}.filter-input{flex:1;min-width:0;padding:4px 6px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:11px}.filter-input:focus{outline:none;border-color:var(--accent)}.filter-input[type=number]{width:60px}.filter-input[type=date]{min-width:120px;font-family:var(--font-sans)}.filter-input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.75);opacity:.8;cursor:pointer}.month-picker{position:relative;flex:1;min-width:0}.month-picker-trigger{width:100%;padding:4px 6px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-mono);font-size:11px;cursor:pointer;text-align:left;transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-picker-trigger.has-value{color:var(--text-primary)}.month-picker-trigger:hover{border-color:var(--border-hover)}.month-picker-dropdown{position:absolute;top:calc(100% + 4px);left:50%;z-index:100;width:180px;padding:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000080;animation:month-picker-in .15s ease-out forwards}@keyframes month-picker-in{0%{opacity:0;transform:translate(-50%) translateY(-4px) scale(.97)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.month-picker-header{display:flex;align-items:center;justify-content:space-between;padding:2px 0 6px}.month-picker-year{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-primary);letter-spacing:.03em}.month-picker-nav{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.month-picker-nav:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.month-picker-nav:disabled{opacity:.25;cursor:default}.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.month-picker-cell{padding:5px 2px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-sans);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.month-picker-cell:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover)}.month-picker-cell.selected{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-hover)}.month-picker-cell.out-of-range{opacity:.2;cursor:default}.month-picker-clear{display:block;width:100%;margin-top:4px;padding:4px;background:none;border:none;border-top:1px solid var(--border);color:var(--text-muted);font-family:var(--font-sans);font-size:10px;cursor:pointer;transition:color var(--transition-fast)}.month-picker-clear:hover{color:var(--text-primary)}.filter-range-sep{color:var(--text-muted);font-size:12px;flex-shrink:0}.personal-info-bar button.active{color:var(--accent)}.personal-action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.personal-action-btn:hover{color:var(--text-primary)}.personal-action-btn.active{color:var(--accent)}@media(max-width:900px){body{padding:0;height:100dvh;overflow:hidden}#app{flex-direction:column;gap:0;height:100dvh;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}#left-sidebar,#right-sidebar{display:none!important}#board-column{width:100%;max-width:none;flex:1;min-height:0;gap:0;display:flex;flex-direction:column;overflow:hidden}#board-row{flex-shrink:0}#board{max-height:none;max-width:none}#board-scroll{display:none}#mobile-tabs{display:flex;flex-shrink:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-surface)}#mobile-tabs{border-radius:0}#mobile-tabs .segment-btn{border-radius:0;flex:1;padding:12px 8px;font-size:13px}.mobile-panel{display:none;flex-direction:column;gap:10px;flex:1;min-height:0;overflow-y:auto;padding:10px 12px}.mobile-panel.active,.mobile-panel #controls,.mobile-panel #alert-banner,.mobile-panel #history-toolbar,.mobile-panel #history-lines-toggle,.mobile-panel #moves,.mobile-panel #move-actions{display:flex}.mobile-panel #opening-lines{display:block;width:100%}.mobile-panel #engine-lines{display:flex}.mobile-panel #moves{flex:1;min-height:0;width:100%}.btn,.segment-btn{padding:10px 18px;font-size:14px;min-height:44px}.explorer-move{height:46px;padding:8px 10px;font-size:14px}.lock-btn{width:36px;height:36px;opacity:.6}.lock-btn svg{width:18px;height:18px}.toggle-label,.checkbox-grid label,.alert-toggle-label{font-size:14px;min-height:36px}.system-select{min-height:44px;font-size:14px}.opening-name{font-size:16px}.library-modal{width:95vw;max-height:90vh}.library-results{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}.library-detail-board{width:min(300px,100%)}.tooltip-popup{display:none}}.report-page{position:fixed;inset:0;z-index:200;background:var(--bg-deep);overflow-y:auto}.report-page.hidden{display:none}.report-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.report-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text-primary)}.report-header-right{display:flex;align-items:center;gap:10px}.report-username{color:var(--text-secondary);font-size:13px}.report-refresh-status{font-size:11px;color:var(--text-muted);max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-filter-bar{display:flex;align-items:center;gap:16px;padding:10px 24px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.report-filter-group{display:flex;align-items:center;gap:6px}.report-filter-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-right:2px}.report-filter-input{width:64px;padding:4px 8px;font-size:12px;font-family:var(--font-mono);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none}.report-filter-input:focus{border-color:var(--accent)}.report-filter-input::placeholder{color:var(--text-dim)}.report-filter-date-inputs{display:flex;align-items:center;gap:6px}.report-filter-date-inputs.hidden{display:none}.report-filter-input.report-filter-date{width:134px;font-family:var(--font-sans)}.report-filter-input.report-filter-date::-webkit-calendar-picker-indicator{filter:invert(.75);opacity:.8;cursor:pointer}.report-filter-sep{color:var(--text-muted);font-size:12px}.report-filter-count{font-size:12px;color:var(--text-secondary);font-family:var(--font-mono);margin-left:auto}.report-content{max-width:1400px;margin:0 auto;padding:24px}.report-empty{text-align:center;padding:80px 24px;color:var(--text-secondary);font-size:15px;line-height:1.8}.report-import-form{margin-top:20px;display:flex;flex-direction:column;align-items:center;gap:12px}.report-import-platform{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.report-import-platform .segment-btn{padding:6px 16px;font-size:13px;min-height:auto}.report-import-row{display:flex;gap:8px;align-items:center}.report-import-input{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:14px;font-family:var(--font-mono);width:200px}.report-import-input:focus{outline:none;border-color:var(--accent)}.report-import-input::placeholder{color:var(--text-dim)}.report-import-months{display:flex;align-items:center;gap:6px}.report-import-progress{width:280px}.report-import-progress-text{font-size:12px;color:var(--text-secondary);margin-top:4px;text-align:center}.report-import-result{font-size:13px}.report-import-result.success{color:var(--opportunity)}.report-import-result.error{color:var(--danger)}.report-note{background:var(--accent-subtle);color:var(--accent);padding:8px 14px;border-radius:var(--radius-md);font-size:13px;margin-bottom:20px}.report-overview{margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);padding:10px}.report-overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.report-overview-stats.stats-5{grid-template-columns:repeat(5,minmax(0,1fr))}.report-overview-stats.stats-6{grid-template-columns:repeat(6,minmax(0,1fr))}.report-overview-stat{min-width:0}.report-overview-key{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.35px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-overview-value{margin-top:1px;font-size:16px;line-height:1.1;font-weight:700;color:var(--text-primary);font-family:var(--font-mono)}.report-overview-wdl{height:16px;border-radius:3px;overflow:hidden;display:flex;background:#2a2a2a}.report-overview-wdl .bar-piece-white,.report-overview-wdl .bar-draw-neutral,.report-overview-wdl .bar-piece-black{font-size:11px;font-weight:700}.report-overview-breakdown{margin-top:10px;border-top:1px solid var(--border);padding-top:4px}.report-overview-breakdown>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;font-size:12px;font-weight:600;color:var(--text-primary)}.report-overview-breakdown>summary:after{content:"Show";font-size:10px;font-weight:500;color:var(--text-muted)}.report-overview-breakdown[open]>summary:after{content:"Hide"}.report-overview-breakdown>summary::-webkit-details-marker{display:none}.report-overview-breakdown-body{padding:4px 0 2px}.report-overview-breakdown-body .report-charts-row{margin-bottom:0}.report-guide{margin-bottom:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);overflow:hidden}.report-guide>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;font-size:13px;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border)}.report-guide>summary:after{content:"Click to expand";font-size:11px;font-weight:500;color:var(--text-muted)}.report-guide[open]>summary:after{content:"Click to collapse"}.report-guide>summary::-webkit-details-marker{display:none}.report-guide-body{padding:10px 12px 12px;font-size:13px;color:var(--text-secondary);line-height:1.55}.report-guide-body p{margin:0 0 8px}.report-guide-body ol{margin:0;padding-left:18px}.report-guide-actions{margin-top:10px}.report-theory-overlay{position:fixed;inset:0;background:#00000094;display:flex;align-items:center;justify-content:center;padding:20px;z-index:250}.report-theory-overlay.hidden{display:none}.report-theory-modal{width:min(880px,100%);max-height:min(85vh,920px);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 20px 50px #0000008c;display:flex;flex-direction:column;overflow:hidden}.report-theory-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:12px 14px}.report-theory-title{font-size:15px;font-weight:700;color:var(--text-primary)}.report-theory-body{padding:14px 16px 16px;overflow:auto;font-size:13px;color:var(--text-secondary);line-height:1.55}.report-theory-body h3{margin:14px 0 6px;font-size:13px;color:var(--text-primary)}.report-theory-body h3:first-child{margin-top:0}.report-theory-body p{margin:0 0 8px}.report-theory-body ul,.report-theory-body ol{margin:0 0 8px;padding-left:18px}.report-stats-row{display:flex;gap:8px;margin-bottom:14px}.report-stat{flex:1;background:var(--bg-elevated);border-radius:var(--radius-md);padding:10px 8px;text-align:center;border:1px solid var(--border)}.report-stat-value{font-family:var(--font-mono);font-size:20px;font-weight:700;line-height:1.1;color:var(--text-primary)}.report-stat-label{font-size:10px;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.4px}.report-wdl-wrap{margin-bottom:14px}.report-wdl-bar{height:22px;background:#2a2a2a;border-radius:var(--radius-sm);overflow:hidden;display:flex}.report-wdl-legend{display:flex;gap:10px;justify-content:center;margin-top:4px;font-size:11px;color:var(--text-secondary);font-family:var(--font-mono)}.report-body{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;align-items:start}.report-main-col{grid-column:1;min-width:0}.report-board-col{position:sticky;top:80px;min-width:0}.report-analysis-col{position:sticky;top:80px;min-width:0;max-height:calc(100vh - 96px);overflow-y:auto}.report-analysis-col::-webkit-scrollbar{width:4px}.report-analysis-col::-webkit-scrollbar-track{background:transparent}.report-analysis-col::-webkit-scrollbar-thumb{background:#fff0;border-radius:4px}.report-analysis-col.scrolling::-webkit-scrollbar-thumb{background:#ffffff26}@supports not selector(::-webkit-scrollbar){.report-analysis-col{scrollbar-width:none}.report-analysis-col.scrolling{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}}.report-board-wrap{width:100%;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.report-board-nav{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:8px}.report-nav-counter{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);min-width:40px;text-align:center}.report-board-eco{width:100%;margin-bottom:8px;font-size:11px;color:var(--text-primary);font-family:var(--font-mono);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-board-eco.placeholder{color:var(--text-muted)}.report-board-label{margin-top:8px;font-size:12px;color:var(--text-muted);font-family:var(--font-mono);line-height:1.6;text-align:center;overflow-wrap:break-word;padding:0 2px}.report-trainer-btn{width:100%;margin-top:8px}.report-line-movenum{color:var(--text-dim);margin-right:1px}.report-line-move{color:var(--text-secondary);cursor:pointer;padding:1px 2px;border-radius:2px;transition:color var(--transition-fast),background var(--transition-fast)}.report-line-move:hover{color:var(--text-primary);background:var(--bg-hover)}.report-line-move.active{color:var(--text-primary);background:var(--accent-subtle);font-weight:600}.report-continuations{margin-top:12px;display:flex;flex-direction:column;gap:3px}.report-continuations:empty{display:none}.report-continuations-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.report-cont-row{display:grid;grid-template-columns:46px 64px 36px 1fr 28px;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(270deg,#8ca0d21a,#8ca0d208 35%,#8ca0d203);border:1px solid rgba(140,160,210,.1);transition:background var(--transition-fast),border-color var(--transition-fast)}.report-cont-row:hover{background:linear-gradient(270deg,#8ca0d224,#8ca0d20d 35%,#8ca0d205);border-color:#8ca0d22e}.report-cont-row.locked{background:linear-gradient(270deg,#6889d42e,#6889d412 30%,#6889d405);border-color:#6889d473;border-left:4px solid rgba(104,137,212,.56)}.report-cont-row.locked:hover{background:linear-gradient(270deg,#6889d440,#6889d41a 30%,#6889d40a);border-color:#6889d48c;border-left:4px solid rgba(104,137,212,.7)}.report-cont-row.locked .report-cont-san{color:#8ab4e8}.report-cont-row.score-bad{background:linear-gradient(270deg,#e0606024,#e060600a 35%,#e0606005);border-color:#e0606066}.report-cont-row.score-bad:hover{background:linear-gradient(270deg,#e0606038,#e0606014 35%,#e0606008);border-color:#e060608c}.report-cont-row.score-bad .report-cont-san{color:var(--danger)}.report-cont-row.score-good{background:linear-gradient(270deg,#5cb85c24,#5cb85c0a 35%,#5cb85c05);border-color:#5cb85c66}.report-cont-row.score-good:hover{background:linear-gradient(270deg,#5cb85c38,#5cb85c14 35%,#5cb85c08);border-color:#5cb85c8c}.report-cont-row.score-good .report-cont-san{color:var(--opportunity)}.report-cont-row.score-ok{background:linear-gradient(270deg,#e8a0401f,#e8a0400a 35%,#e8a04005);border-color:#e8a04061}.report-cont-row.score-ok:hover{background:linear-gradient(270deg,#e8a0402e,#e8a04012 35%,#e8a04008);border-color:#e8a04080}.report-cont-row.score-ok .report-cont-san{color:var(--trap)}.report-cont-san{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-primary)}.report-cont-pick{position:relative;height:18px;background:#ffffff0d;border-radius:3px;overflow:hidden}.report-cont-pick .pct-fill{position:absolute;inset:0;width:0;background:#8ca0d238;border-radius:3px}.report-cont-pick .pct-label{position:relative;z-index:1;display:flex;align-items:center;height:100%;padding:0 5px;font-size:10px;font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap}.report-cont-games{font-size:10px;color:var(--text-muted);font-family:var(--font-mono);color:var(--text-primary);text-align:right}.report-cont-bar{height:18px;background:#2a2a2a;border-radius:3px;overflow:hidden;display:flex}.report-cont-lock{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;opacity:.4;transition:opacity var(--transition-fast);color:var(--text-secondary)}.report-cont-lock:hover{opacity:1}.report-cont-lock.locked{opacity:1;color:var(--accent)}.report-cont-row.locked .report-cont-lock{color:var(--accent)}.report-cont-row.score-bad .report-cont-lock.locked{color:var(--danger)}.report-cont-row.score-good .report-cont-lock.locked{color:var(--opportunity)}.report-cont-row.score-ok .report-cont-lock.locked{color:var(--trap)}.report-line-diagnostics{margin-top:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05;padding:8px;display:flex;flex-direction:column;gap:10px}.report-line-diagnostics-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.report-line-diag-section{display:flex;flex-direction:column;gap:6px}.report-line-diag-heading{font-size:11px;color:var(--text-secondary);font-weight:600}.report-line-diag-context{font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}.report-line-diag-context-fallback{color:#d9bf90}.report-line-diag-list{display:flex;flex-direction:column;gap:6px}.report-line-diag-row{width:100%;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);padding:8px 10px;text-align:left;color:inherit;cursor:pointer;display:flex;align-items:center;gap:8px;font:inherit;transition:background var(--transition-fast),border-color var(--transition-fast)}.report-line-diag-row:hover{background:#ffffff0d;border-color:#ffffff29}.report-line-diag-row.severity-high,.report-line-diag-row.severity-mid,.report-line-diag-row.severity-low,.report-line-diag-row.score-bad,.report-line-diag-row.score-ok,.report-line-diag-row.score-good{border-left-width:3px;padding-left:8px}.report-line-diag-row.severity-high{border-left-color:#e06060;border-color:#e060604d;background:linear-gradient(270deg,#e0606014,#e0606005)}.report-line-diag-row.severity-mid{border-left-color:#e8a040;border-color:#e8a0404d;background:linear-gradient(270deg,#e8a0400f,#e8a04005)}.report-line-diag-row.severity-low{border-left-color:#8d9ec8;border-color:#8d9ec84d;background:linear-gradient(270deg,#8d9ec80f,#8d9ec805)}.report-line-diag-row.score-bad{border-left-color:#e06060;border-color:#e060604d;background:linear-gradient(270deg,#e0606014,#e0606005)}.report-line-diag-row.score-ok{border-left-color:#e8a040;border-color:#e8a0404d;background:linear-gradient(270deg,#e8a0400f,#e8a04005)}.report-line-diag-row.score-good{border-left-color:#5cb85c;border-color:#5cb85c4d;background:linear-gradient(270deg,#5cb85c0f,#5cb85c05)}.report-line-diag-row.severity-high:hover{border-color:#e0606073;background:linear-gradient(270deg,#e0606024,#e060600a)}.report-line-diag-row.severity-mid:hover{border-color:#e8a04073;background:linear-gradient(270deg,#e8a0401f,#e8a0400a)}.report-line-diag-row.severity-low:hover{border-color:#8d9ec873;background:linear-gradient(270deg,#8d9ec81f,#8d9ec80a)}.report-line-diag-row.score-bad:hover{border-color:#e0606073;background:linear-gradient(270deg,#e0606024,#e060600a)}.report-line-diag-row.score-ok:hover{border-color:#e8a04073;background:linear-gradient(270deg,#e8a0401f,#e8a0400a)}.report-line-diag-row.score-good:hover{border-color:#5cb85c73;background:linear-gradient(270deg,#5cb85c1f,#5cb85c0a)}.report-line-diag-move{font-size:12px;font-family:var(--font-mono);font-weight:600;white-space:nowrap}.report-line-diag-row.severity-high .report-line-diag-move{color:var(--danger)}.report-line-diag-row.severity-mid .report-line-diag-move{color:var(--trap)}.report-line-diag-row.severity-low .report-line-diag-move{color:var(--text-secondary)}.report-line-diag-row.score-bad .report-line-diag-move{color:var(--danger)}.report-line-diag-row.score-ok .report-line-diag-move{color:var(--trap)}.report-line-diag-row.score-good .report-line-diag-move{color:var(--opportunity)}.report-line-diag-desc{flex:1;font-size:11px;color:var(--text-secondary);font-family:var(--font-sans);min-width:0}.report-line-diag-badge{font-size:9px;font-family:var(--font-sans);font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap}.report-line-diag-badge.severity-high{color:var(--danger);background:#e060601f}.report-line-diag-badge.severity-mid{color:var(--trap);background:#e8a0401f}.report-line-diag-badge.severity-low{color:var(--text-muted);background:#8d9ec81f}.report-line-diag-badge.score-bad{color:var(--danger);background:#e060601f}.report-line-diag-badge.score-ok{color:var(--trap);background:#e8a0401f}.report-line-diag-badge.score-good{color:var(--opportunity);background:#5cb85c1f}.report-line-diagnostics-empty{font-size:12px;color:var(--text-muted)}.report-line-games{margin-top:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05;padding:8px}.report-line-games-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px}.report-line-games-total{font-size:10px;font-family:var(--font-mono);color:var(--text-secondary);text-transform:none;letter-spacing:0}.report-line-games-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.report-line-games-list{max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding-right:2px}.report-line-games-list::-webkit-scrollbar{width:4px}.report-line-games-list::-webkit-scrollbar-track{background:transparent}.report-line-games-list::-webkit-scrollbar-thumb{background:#fff0;border-radius:4px}.report-line-games-list.scrolling::-webkit-scrollbar-thumb{background:#ffffff26}@supports not selector(::-webkit-scrollbar){.report-line-games-list{scrollbar-width:none}.report-line-games-list.scrolling{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}}.report-line-games-empty{font-size:12px;color:var(--text-muted)}.report-line-game-row{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);background:#ffffff05;padding:5px 7px;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast)}.report-line-game-row:hover{background:#ffffff0f;border-color:#ffffff2e}.report-line-game-result{flex-shrink:0;font-size:11px;font-family:var(--font-mono);font-weight:700;width:22px;line-height:1;text-align:center;padding:3px 0;border-radius:4px;border:1px solid}.report-line-game-result.win{color:#9ad79a;border-color:#78cc7873;background:#78cc781f}.report-line-game-result.draw{color:#9fbbe9;border-color:#7ba3dd73;background:#7ba3dd1f}.report-line-game-result.loss{color:#efb6b6;border-color:#d766667a;background:#d766661f}.report-line-game-opp{flex:1;min-width:0;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-line-game-date{flex-shrink:0;font-size:10px;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap}.report-line-game-external{flex-shrink:0;display:flex;align-items:center;color:var(--text-muted);opacity:.4;transition:opacity var(--transition-fast)}.report-line-game-row:hover .report-line-game-external{opacity:.8}.report-charts-row{display:flex;gap:14px;margin-bottom:16px}.report-chart-section{flex:1;min-width:0}.report-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.report-chart-empty{color:var(--text-muted);font-size:12px;text-align:center;padding:12px}.report-chart-section .report-section-title{font-size:12px;margin-bottom:8px;padding-bottom:4px}.report-sparkline{width:100%;height:auto;display:block}.sparkline-area{fill:var(--accent-subtle)}.sparkline-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sparkline-dot{fill:var(--accent)}.sparkline-label{fill:var(--text-muted);font-size:10px;font-family:var(--font-mono);text-anchor:end}.sparkline-current{fill:var(--accent);font-size:11px;font-family:var(--font-mono);font-weight:600}.report-tc-table{display:flex;flex-direction:column;gap:4px}.report-tc-row{display:grid;grid-template-columns:72px 42px 36px 1fr;align-items:center;gap:6px;padding:2px 0}.report-tc-name{font-size:12px;color:var(--text-primary)}.report-tc-games{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);text-align:right}.report-tc-rate{font-size:11px;font-family:var(--font-mono);font-weight:600;color:var(--text-primary);text-align:right}.report-tc-bar{width:100%;height:12px;background:#2a2a2a;border-radius:3px;overflow:hidden;display:flex}.report-side-section{margin-bottom:24px}.report-family-slot{margin-bottom:14px}.report-family-slot-title{margin-bottom:8px;font-size:11px;color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3px}.report-family-card-list{display:flex;flex-direction:column;gap:10px}.report-family-card{border:1px solid rgba(140,160,210,.1);border-left-width:3px;border-radius:var(--radius-sm);padding:10px;background:linear-gradient(270deg,#8ca0d21a,#8ca0d208 35%,#8ca0d203);cursor:pointer;position:relative;overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.report-family-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000038;background:linear-gradient(270deg,#8ca0d224,#8ca0d20d 35%,#8ca0d205);border-color:#8ca0d22e}.report-family-card.variant-best{border-left-color:#76b97a}.report-family-card.variant-weak.severity-high{border-left-color:#d76666}.report-family-card.variant-weak.severity-mid{border-left-color:#d6924a}.report-family-card.variant-weak.severity-low{border-left-color:#8d9ec8}.report-family-title-wrap{min-width:0;display:flex;flex-direction:column;gap:2px}.report-family-label{font-size:13px;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-family-move-row{margin-top:2px;min-width:0;display:inline-flex;align-items:center;gap:6px;max-width:100%}.report-family-move-line{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.report-family-transpose-toggle{font-size:10px;font-weight:600;font-family:var(--font-mono);color:var(--text-secondary);border:1px solid rgba(160,178,226,.34);border-radius:999px;background:#a0b2e221;padding:1px 6px;line-height:1.3;cursor:pointer;flex-shrink:0;white-space:nowrap}.report-family-transpose-toggle:hover{background:#a0b2e233;border-color:#a0b2e27a;color:var(--text-primary)}.report-family-stats{margin-top:6px;display:flex;align-items:center;gap:10px}.report-family-elo-badge{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;width:9ch;text-align:right}.report-family-elo-badge.good{color:var(--opportunity)}.report-family-elo-badge.bad{color:var(--danger)}.report-wdl-bar-inline{height:18px;min-width:60px;flex:1;display:flex;overflow:hidden;border-radius:var(--radius-sm)}.report-wdl-bar-inline .bar-win,.report-wdl-bar-inline .bar-draw,.report-wdl-bar-inline .bar-loss{font-size:9px}.report-family-table-section{margin-top:8px}.report-family-table-title{margin-bottom:8px;font-size:11px;color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3px}.report-family-table{display:flex;flex-direction:column;gap:6px}.report-family-table-header,.report-family-row{display:grid;grid-template-columns:1fr 56px 80px 9ch;align-items:center;gap:8px}.report-family-table-header{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;padding:0 10px 4px;border-bottom:1px solid var(--border)}.report-family-table-header>:nth-child(2),.report-family-table-header>:nth-child(3){text-align:center}.report-family-table-header>:last-child{text-align:right}.report-family-table-header .sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.report-family-table-header .sortable:hover{color:var(--text-primary)}.report-family-table-header .sort-active{color:var(--accent)}.report-family-row{padding:7px 10px;border-radius:var(--radius-sm);border:1px solid rgba(140,160,210,.1);cursor:pointer;background:linear-gradient(270deg,#8ca0d21a,#8ca0d208 35%,#8ca0d203);transition:background var(--transition-fast),border-color var(--transition-fast);font-size:12px;color:var(--text-secondary)}.report-family-row:hover{background:linear-gradient(270deg,#8ca0d224,#8ca0d20d 35%,#8ca0d205);border-color:#8ca0d22e}.report-family-row.selected{background:linear-gradient(270deg,#6889d42e,#6889d412 30%,#6889d405);border-color:#6889d473}.report-family-name-cell{min-width:0}.report-family-name-text{color:var(--text-primary);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.report-family-row .report-family-move-line{margin-top:1px}.report-family-games{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);text-align:center}.report-family-elo{font-family:var(--font-mono);font-size:12px;text-align:right;color:var(--text-secondary)}.report-family-elo.good{color:var(--opportunity)}.report-family-elo.bad{color:var(--danger)}.report-opening-section{margin-bottom:24px}.report-opening-table{display:flex;flex-direction:column}.report-opening-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 54px 64px 54px;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;position:relative;overflow:hidden;transition:background var(--transition-fast)}.report-opening-row:hover{background:var(--bg-hover)}.report-opening-row.selected{background:var(--accent-subtle)}.report-family-card.side-white:after,.report-family-card.side-black:after,.report-weakness-card.side-white:after,.report-weakness-card.side-black:after,.report-highlight-card.side-white:after,.report-highlight-card.side-black:after{content:"";position:absolute;top:0;right:0;width:5px;height:100%;pointer-events:none}.report-family-card.side-white:after,.report-weakness-card.side-white:after,.report-highlight-card.side-white:after{background:linear-gradient(270deg,#f5f8fff2,#dae4f8c7)}.report-family-card.side-black:after,.report-weakness-card.side-black:after,.report-highlight-card.side-black:after{background:linear-gradient(270deg,#3a404af2,#22272fe6)}.report-opening-header{cursor:default;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;padding-bottom:4px;border-bottom:1px solid var(--border)}.report-opening-header .sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.report-opening-header .sortable:hover{color:var(--text-primary)}.report-opening-header .sort-active{color:var(--accent)}.report-opening-header:hover{background:none}.report-opening-label{font-family:var(--font-mono);font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-opening-label-cell{display:block;min-width:0}.report-opening-label-text{min-width:0;display:flex;flex-direction:column;gap:2px}.report-opening-subline{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-opening-games{font-size:12px;color:var(--text-muted);font-family:var(--font-mono);text-align:center}.report-opening-rate{font-size:12px;font-family:var(--font-mono);font-weight:600;color:var(--text-primary);text-align:center}.report-opening-rate.good{color:var(--opportunity)}.report-opening-rate.bad{color:var(--danger)}.report-opening-delta,.report-opening-impact{font-size:12px;font-family:var(--font-mono);text-align:center;color:var(--text-secondary)}.report-opening-delta.good{color:var(--opportunity)}.report-opening-delta.bad,.report-opening-impact.bad{color:var(--danger)}.report-weakness-list{display:flex;flex-direction:column;gap:10px}.report-weakness-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;background:linear-gradient(270deg,#ffffff06,#ffffff03);border-left-width:3px;cursor:pointer;position:relative;overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.report-weakness-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000038}.report-weakness-card.severity-high{border-left-color:#d76666}.report-weakness-card.severity-mid{border-left-color:#d6924a}.report-weakness-card.severity-low{border-left-color:#8d9ec8}.report-weakness-top{display:flex;flex-direction:column;gap:6px}.report-line-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.report-family-badges{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.report-line-games-badge{flex-shrink:0;font-size:11px;font-family:var(--font-mono);font-weight:700;color:#d9e7ff;border:1px solid rgba(137,181,255,.52);border-radius:999px;background:#42669e3d;padding:2px 8px}.report-weakness-label{font-size:13px;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-weakness-subline{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-weakness-stats{display:flex;gap:8px;flex-wrap:wrap}.report-weakness-stats span{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:2px 7px}.report-weakness-examples{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.report-weakness-examples-all{max-height:180px;overflow-y:auto;padding-right:4px}.report-weakness-examples.hidden{display:none}.report-weakness-link{font-size:12px;color:#91baf5;text-decoration:underline;text-underline-offset:2px}.report-findings-section{margin-bottom:24px}.report-highlights-list{display:flex;flex-direction:column;gap:10px}.report-highlights-slot{margin-bottom:14px}.report-highlights-slot:last-child{margin-bottom:0}.report-highlights-slot-title{margin-bottom:8px;font-size:11px;color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3px}.report-highlight-card{border:1px solid var(--border);border-left-width:3px;border-left-color:#76b97a;border-radius:var(--radius-sm);padding:10px;background:linear-gradient(270deg,#ffffff06,#ffffff03);cursor:pointer;position:relative;overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.report-highlight-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0003}.report-highlight-label{font-size:13px;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-highlight-subline{margin-top:2px;font-size:11px;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-highlight-stats{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px}.report-highlight-stats span{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:2px 7px}.report-highlight-examples{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;max-height:180px;overflow-y:auto;padding-right:4px}.report-highlight-examples.hidden{display:none}.report-highlight-example-link{font-size:12px;color:#91baf5;text-decoration:underline;text-underline-offset:2px}#recent-games-container:empty{display:none}#recent-games-container{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}.recent-games{flex:1;min-height:0;display:flex;flex-direction:column}.recent-games-empty{padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.recent-games-empty-title{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.recent-games-empty p{font-size:12px;color:var(--text-secondary);margin:0 0 10px;line-height:1.5}.recent-games-empty ul{margin:0 0 12px;padding-left:18px;font-size:12px;color:var(--text-secondary);line-height:1.6}.recent-games-empty li{margin-bottom:2px}.sidebar-section-games.games-card{gap:10px;background:linear-gradient(to bottom,var(--bg-elevated),#1d1f33);border-radius:var(--radius-md);padding:10px;border:1px solid var(--border);box-shadow:var(--shadow-card),inset 0 1px #ffffff08}.games-identity-row{display:flex;align-items:center;gap:8px}.games-identity-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.games-identity-name{color:var(--accent);font-weight:600;font-size:13px}.games-identity-count{color:var(--text-secondary);font-size:11px}.games-identity-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.games-identity-action{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.games-identity-action.active{color:var(--accent)}.games-identity-action:hover{color:var(--text-secondary)}.games-identity-action.spinning svg{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.games-report-btn{width:100%;justify-content:center;gap:6px}.recent-games-filters{display:flex;align-items:center;gap:6px}.recent-games-filters-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.recent-games-filters .games-identity-action{margin-left:auto}.recent-games-list{display:flex;flex-direction:column;gap:3px;padding:4px 0;flex:1;min-height:0;overflow-y:auto;margin-right:-4px}.recent-games-list::-webkit-scrollbar{width:4px}.recent-games-list::-webkit-scrollbar-track{background:transparent}.recent-games-list::-webkit-scrollbar-thumb{background:#fff0;border-radius:4px}.recent-games-list.scrolling::-webkit-scrollbar-thumb{background:#ffffff26}@supports not selector(::-webkit-scrollbar){.recent-games-list{scrollbar-width:none}.recent-games-list.scrolling{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}}.recent-game-row{display:flex;align-items:center;gap:8px;border:1px solid rgba(140,160,210,.1);border-radius:var(--radius-sm);background:linear-gradient(270deg,#8ca0d21a,#8ca0d208 35%,#8ca0d203);padding:5px 7px;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast)}.recent-game-row.clickable{cursor:pointer}.recent-game-row.clickable:hover{background:#ffffff0f;border-color:#ffffff2e}.recent-game-row.as-white{border-left:3px solid #e8e8e0}.recent-game-row.as-black{border-left:3px solid #3a3a3a}.recent-game-result{flex-shrink:0;font-size:11px;font-family:var(--font-mono);font-weight:700;width:22px;line-height:1;text-align:center;padding:3px 0;border-radius:4px;border:1px solid}.recent-game-result.win{color:#9ad79a;border-color:#78cc7873;background:#78cc781f}.recent-game-result.draw{color:#9fbbe9;border-color:#7ba3dd73;background:#7ba3dd1f}.recent-game-result.loss{color:#efb6b6;border-color:#d766667a;background:#d766661f}.recent-game-tc{flex-shrink:0;display:flex;align-items:center;color:var(--text-dim)}.recent-game-opening{flex:1;min-width:0;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-game-rating{flex-shrink:0;font-size:11px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap}.recent-game-info{flex-shrink:0;font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.recent-game-date{flex-shrink:0;font-size:10px;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap}a.recent-game-external{flex-shrink:0;display:flex;align-items:center;color:var(--text-muted);opacity:.4;transition:opacity var(--transition-fast),background var(--transition-fast);text-decoration:none;padding:4px;margin:-4px}a.recent-game-external:hover{opacity:1}.recent-game-row.clickable:hover a.recent-game-external{opacity:.6}.recent-game-row.clickable a.recent-game-external:hover{opacity:1;background:#ffffff14;border-radius:var(--radius-sm)}.recent-game-row.selected{background:var(--accent-subtle);border-color:var(--accent)}.recent-game-row.selected.clickable:hover{background:#5b7fc738}@media(max-width:900px){.report-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.report-filter-bar{padding:8px 16px;gap:10px}.report-filter-group{flex-wrap:wrap}.report-header{padding:10px 16px;flex-wrap:wrap;gap:8px}.report-header-right{width:100%;justify-content:flex-end}.report-refresh-status{max-width:180px}.report-content{padding:16px}.report-stats-row{flex-wrap:wrap}.report-stat{flex:1 1 calc(50% - 6px);min-width:0}.report-body{display:flex;flex-direction:column}.report-board-col{position:static;display:flex;flex-direction:column;align-items:center;order:-1;margin-bottom:16px}.report-board-wrap{width:280px;aspect-ratio:1}.report-board-eco{width:280px}.report-analysis-col{position:static;max-height:none;overflow-y:visible}.report-charts-row{flex-direction:column}.report-opening-row{grid-template-columns:minmax(0,1fr) 56px 42px 52px 42px;font-size:12px}.report-family-table-header,.report-family-row{grid-template-columns:1fr 44px 60px 9ch;font-size:11px}}
