.mobile-tab-bar{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);height:var(--mobile-nav-height,56px);padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0);z-index:100;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-tab{cursor:pointer;height:100%;color:var(--text-secondary);-webkit-tap-highlight-color:transparent;min-width:var(--touch-target-min,44px);min-height:var(--touch-target-min,44px);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:6px 0;transition:color .15s;display:flex}.mobile-tab:hover{color:var(--text-primary)}.mobile-tab.active{color:var(--accent-primary)}.mobile-tab-icon{justify-content:center;align-items:center;height:24px;display:flex;position:relative}.mobile-tab-label{text-transform:uppercase;letter-spacing:.3px;margin-top:2px;font-size:10px;font-weight:500}.mobile-tab-badge{color:#fff;background-color:var(--accent-primary);border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;display:flex;position:absolute;top:-4px;right:-8px}.mobile-layout-content{padding-bottom:calc(var(--mobile-nav-height,56px) + env(safe-area-inset-bottom,0))}@media (min-width:1025px){.mobile-tab-bar{display:none}.mobile-layout-content{padding-bottom:0}}@media (max-height:500px) and (orientation:landscape){.mobile-tab-bar{height:44px;padding-bottom:0}.mobile-tab-label{display:none}.mobile-tab-icon{height:28px}.mobile-tab-icon svg{width:24px;height:24px}.mobile-layout-content{padding-bottom:calc(44px + env(safe-area-inset-bottom,0))}}.panel-group{height:100%}.panel{will-change:auto;contain:layout style;flex-direction:column;display:flex;overflow:hidden}.panel-group:has(.resize-handle[data-resize-handle-active]) .panel>*{pointer-events:none}.panel-group:has(.resize-handle[data-resize-handle-active]) .panel{contain:strict}.panel-group:has(.resize-handle[data-resize-handle-active]) .sidebar-section-content{visibility:hidden}.panel-group:has(.resize-handle[data-resize-handle-active]) .board-panel:after{content:"";z-index:100;background:0 0;position:absolute;top:0;bottom:0;left:0;right:0}.panel-group:has(.resize-handle[data-resize-handle-active]) .sidebar-panel:after{content:"";z-index:100;background:0 0;position:absolute;top:0;bottom:0;left:0;right:0}.panel-group:has(.resize-handle[data-resize-handle-active]) .library-panel-container:after{content:"";z-index:100;background:0 0;position:absolute;top:0;bottom:0;left:0;right:0}.board-panel{background-color:var(--bg-primary);justify-content:stretch;align-items:stretch;padding:0;display:flex;position:relative}.sidebar-panel{background-color:var(--bg-secondary);border-left:1px solid var(--border-color);position:relative}.resize-handle{background-color:var(--bg-secondary);z-index:10;transition:background-color .1s;position:relative}.resize-handle[data-resize-handle-active]{background-color:var(--accent-primary)!important}.resize-handle:hover{background-color:var(--accent-primary)}.resize-handle-vertical{cursor:col-resize;width:4px}.resize-handle-horizontal{cursor:row-resize;background-color:var(--border-color);height:6px}.resize-handle-horizontal:hover{background-color:var(--accent-primary)}.sidebar-section{background-color:var(--bg-secondary);overscroll-behavior:contain;flex-direction:column;height:100%;padding:.75rem;display:flex;overflow-y:auto}.sidebar-section-header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar-section-header h3{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.75rem;font-weight:600}.sidebar-section-actions{align-items:center;gap:.5rem;display:flex}.collapsible-header{padding:0}.collapse-toggle{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;align-items:center;gap:.375rem;padding:.25rem 0;transition:color .15s;display:flex}.collapse-toggle:hover{color:var(--text-primary)}.collapse-toggle h3{color:inherit;text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.75rem;font-weight:600}.section-icon{opacity:.7;align-items:center;display:flex}.collapsed-section-bar{background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0;padding:.25rem .75rem}.collapsed-section-bar .collapsible-header{margin-bottom:0}.collapsed-section-bar .collapse-toggle{padding:.125rem 0}.sidebar-section-content{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.sidebar-section h3{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;margin:0;font-size:.75rem;font-weight:600}.sidebar-section>:not(h3):not(.sidebar-section-header):not(.sidebar-section-content){flex:1;min-height:0;overflow-y:auto}.game-tree-section{min-height:100px}.game-info-section{min-height:80px}.comments-section{flex-direction:column;min-height:80px;display:flex}.controls-section{flex-shrink:0}.placeholder{background-color:var(--bg-tertiary);border:2px dashed var(--border-color);text-align:center;color:var(--text-secondary);border-radius:4px;padding:1.5rem;font-size:.875rem}.panel-content{flex:1;padding:.5rem;overflow-y:auto}.panel-content::-webkit-scrollbar{width:8px}.panel-content::-webkit-scrollbar-track{background:var(--bg-secondary)}.panel-content::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:4px}.panel-content::-webkit-scrollbar-thumb:hover{background:var(--bg-active)}.sidebar-collapsed-indicator{background:var(--bg-tertiary);border-left:1px solid var(--border-color);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:24px;transition:background-color .2s;display:flex}.sidebar-collapsed-indicator:hover{background:var(--bg-hover)}.sidebar-collapsed-indicator svg{color:var(--text-secondary);opacity:.7;transition:opacity .2s}.sidebar-collapsed-indicator:hover svg{opacity:1;color:var(--text-primary)}.library-panel-container,.left-panel-container{background-color:var(--bg-secondary);border-right:1px solid var(--border-color);position:relative;overflow:hidden}.left-panel-section{background-color:var(--bg-secondary);flex-direction:column;height:100%;padding:.75rem;display:flex;overflow-y:auto}.left-panel-section-content{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.library-section{min-height:100px}.analysis-graph-section{min-height:80px}.library-collapsed-indicator{background:var(--bg-tertiary);border-right:1px solid var(--border-color);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:24px;transition:background-color .2s;display:flex}.library-collapsed-indicator:hover{background:var(--bg-hover)}.library-collapsed-indicator svg{color:var(--text-secondary);opacity:.7;transition:opacity .2s}.library-collapsed-indicator:hover svg{opacity:1;color:var(--text-primary)}.mobile-layout{background-color:var(--bg-primary);flex-direction:column;height:100%;display:flex}.mobile-layout-content{padding-bottom:calc(var(--mobile-nav-height,56px) + env(safe-area-inset-bottom,0));flex-direction:column;flex:1;display:flex;overflow:hidden}.mobile-panel{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.mobile-board-panel{padding:0}.mobile-panel-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);color:var(--text-primary);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.mobile-panel-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.mobile-board-panel .mobile-panel-content>*,.mobile-library-panel .mobile-panel-content>*,.mobile-tree-panel .mobile-panel-content>*,.mobile-analysis-panel .mobile-panel-content>*{flex:1;width:100%;height:100%;min-height:0}.mobile-info-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;gap:0;display:block;overflow:hidden auto}.mobile-info-section{background-color:var(--bg-secondary);padding:12px 16px}.mobile-comment-section{border-top:1px solid var(--border-color);flex-direction:column;flex:1;padding:12px 16px;display:flex}.mobile-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.mobile-tree-panel .mobile-panel-content,.mobile-analysis-panel .mobile-panel-content{padding:0}@media (max-width:1024px),(max-height:500px){.sidebar-collapsed-indicator,.library-collapsed-indicator{display:none}}.mobile-layout.mobile-landscape .mobile-layout-content{padding-bottom:calc(var(--mobile-nav-height-landscape,48px) + env(safe-area-inset-bottom,0))}.mobile-layout.mobile-landscape .mobile-board-panel{height:100%}@media (max-width:1024px) and (orientation:landscape),(max-height:500px){.mobile-tab-bar{height:var(--mobile-nav-height-landscape,48px);padding:0 16px}.mobile-tab{padding:4px 0}.mobile-tab-icon{height:20px}.mobile-tab-label{font-size:9px}.mobile-panel-header{padding:8px 16px;font-size:13px}}.mobile-menu-overlay{z-index:1000;background-color:#00000080;animation:.2s ease-out fadeIn;position:fixed;top:0;bottom:0;left:0;right:0}.mobile-menu{background-color:var(--bg-primary);z-index:1001;flex-direction:column;width:280px;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 8px #0000001a}.mobile-menu.open{transform:translate(0)}.mobile-menu-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:60px;padding:0 16px;display:flex}.mobile-menu-title{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:1.25rem;font-weight:700;display:flex}.mobile-menu-version-tag{color:var(--text-secondary);background-color:var(--bg-secondary);border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:500}.mobile-menu-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;display:flex}.mobile-menu-close:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.mobile-menu-content{flex:1;padding:16px 0;overflow-y:auto}.mobile-menu-section{border-bottom:1px solid var(--border-color);padding:8px 0}.mobile-menu-section:last-child{border-bottom:none}.mobile-menu-section-title{text-transform:uppercase;color:var(--text-secondary);margin:0;padding:0 16px 8px;font-size:.75rem;font-weight:600}.mobile-menu-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:12px 16px;font-size:1rem;text-decoration:none;transition:background-color .2s;display:flex}.mobile-menu-item:hover{background-color:var(--bg-hover)}.mobile-menu-item:disabled{opacity:.5;cursor:not-allowed}.mobile-menu-item:disabled:hover{background-color:#0000}.mobile-menu-footer{border-top:1px solid var(--border-color);background-color:var(--bg-secondary);padding:16px}.mobile-menu-version-info{color:var(--text-tertiary);flex-direction:column;gap:4px;font-size:.75rem;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mobile-menu-item-expandable{position:relative}.mobile-menu-item-value{color:var(--text-secondary);margin-left:auto;font-size:.875rem}.mobile-menu-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform .2s}.mobile-menu-chevron.expanded{transform:rotate(90deg)}.mobile-menu-submenu{background-color:var(--bg-secondary);border-radius:8px;margin:4px 8px 8px;overflow:hidden}.mobile-menu-submenu-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;font-size:.9rem;transition:background-color .15s;display:flex}.mobile-menu-submenu-item:hover{background-color:var(--bg-tertiary)}.mobile-menu-submenu-item.active{background-color:var(--accent-color-alpha,#3b82f61a)}.mobile-menu-flag{font-size:1.25rem;line-height:1}.mobile-menu-language-name{flex:1}.mobile-menu-check{color:var(--accent-color);flex-shrink:0}@media (min-width:768px) and (max-width:1024px){.mobile-menu{width:320px}}.unsaved-changes-overlay{z-index:10000;background:#00000080;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.unsaved-changes-dialog{background:var(--bg-secondary);border-radius:8px;min-width:320px;max-width:420px;animation:.15s ease-out slideIn;box-shadow:0 8px 32px #0000004d}.unsaved-changes-header{border-bottom:1px solid var(--border-color);padding:1rem 1.25rem}.unsaved-changes-header h2{color:var(--text-primary);margin:0;font-size:1rem;font-weight:600}.unsaved-changes-content{padding:1.25rem}.unsaved-changes-content p{color:var(--text-secondary);margin:0;line-height:1.5}.unsaved-changes-actions{border-top:1px solid var(--border-color);justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;display:flex}.unsaved-changes-btn{cursor:pointer;border:none;border-radius:4px;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.unsaved-changes-btn.cancel{background:var(--bg-tertiary);color:var(--text-secondary)}.unsaved-changes-btn.cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.unsaved-changes-btn.discard{background:var(--bg-tertiary);color:var(--text-warning,#f59e0b)}.unsaved-changes-btn.discard:hover{background:#f59e0b26}.unsaved-changes-btn.save{background:var(--accent-color,#3b82f6);color:#fff}.unsaved-changes-btn.save:hover{background:var(--accent-hover,#2563eb)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.gamepad-indicator{align-items:center;gap:.5rem;margin-right:.5rem;display:flex}.gamepad-icon{font:inherit;color:var(--text-secondary);opacity:.4;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin:0;padding:.25rem;transition:opacity .2s,color .2s,transform .1s;display:flex}.gamepad-icon:hover{opacity:.8;transform:scale(1.1)}.gamepad-icon.active{color:var(--accent-color,#4a9eff);opacity:1}.gamepad-icon.active:hover{opacity:1}.gamepad-icon.inactive{color:var(--text-secondary);opacity:.4}.gamepad-icon:focus-visible{outline:2px solid var(--accent-color,#4a9eff);outline-offset:2px}@keyframes gamepad-connect{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.1)}to{opacity:.6;transform:scale(1)}}.gamepad-icon{animation:.3s gamepad-connect}.language-switcher{z-index:1000;position:relative}.language-switcher-button{color:var(--text-secondary,#999);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;height:32px;padding:6px 8px;font-size:12px;font-weight:500;transition:all .15s;display:flex;width:auto!important}.language-switcher-button:hover:not(:disabled){background:var(--bg-tertiary,#2a2a2a);color:var(--text-primary,#fff)}.language-switcher-button:disabled{opacity:.5;cursor:not-allowed}.language-switcher-code{letter-spacing:.5px;font-size:11px;font-weight:600}.language-switcher-chevron{opacity:.6;transition:transform .2s}.language-switcher-chevron.open{transform:rotate(180deg)}.language-switcher-dropdown{background:var(--bg-primary,#0a0a0a);border:1px solid var(--border-color,#333);z-index:9999;border-radius:12px;width:max-content;min-width:220px;max-width:280px;animation:.15s ease-out languageDropdownFadeIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 10px 15px -3px #0003,0 20px 25px -5px #00000026}@keyframes languageDropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.language-switcher-dropdown-header{color:var(--text-tertiary,#666);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color,#333);padding:10px 14px 8px;font-size:11px;font-weight:600}.language-switcher-option{color:var(--text-primary,#fff);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;justify-content:flex-start;align-items:center;gap:10px;padding:10px 14px;font-size:14px;transition:background .1s;display:flex;width:100%!important;height:auto!important}.language-switcher-option:hover{background:var(--bg-tertiary,#1a1a1a)}.language-switcher-option.active{background:var(--accent-color-alpha,#3b82f61a)}.language-flag{text-align:center;flex-shrink:0;min-width:24px;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,Android Emoji,EmojiSymbols,sans-serif;font-size:20px;line-height:1}.language-name{white-space:nowrap;flex:1;font-weight:500;overflow:visible}.language-code-badge{color:var(--text-tertiary,#666);background:var(--bg-tertiary,#1a1a1a);letter-spacing:.5px;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.language-check{color:var(--accent-color,#3b82f6);flex-shrink:0}@media (max-width:1024px){.language-switcher-dropdown{min-width:180px}}@media (max-width:768px){.language-switcher{display:none}}.new-game-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1;pointer-events:all;background-color:#00000080;justify-content:center;align-items:center;transition:opacity .2s ease-in-out;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.new-game-overlay.hidden{opacity:0;pointer-events:none}.new-game-overlay.visible{opacity:1;pointer-events:all}.new-game-dialog{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;min-width:400px;max-width:500px;max-height:90vh;padding:1.5rem;position:relative;overflow-y:auto;box-shadow:0 8px 32px #0000004d}.new-game-dialog h2{color:var(--text-primary);border-bottom:1px solid var(--border-color);margin:0 0 1rem;padding-bottom:.5rem;font-size:1.5rem}.new-game-dialog h3{color:var(--text-secondary);margin:0 0 .75rem;font-size:1rem;font-weight:500}.form-section{margin-bottom:1.5rem}.form-section:last-of-type{margin-bottom:1rem}.form-row{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.player-row{flex-wrap:wrap;gap:1rem;margin-bottom:.5rem;display:flex}.player-row .form-row{flex:1;min-width:180px;margin-bottom:0}.player-row .form-row label{min-width:60px}.form-row label{min-width:100px;color:var(--text-primary);font-weight:500}.form-row input[type=text],.form-row input[type=number]{border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);border-radius:4px;flex:1;padding:.5rem;font-size:.9rem}.form-row input[type=text]:focus,.form-row input[type=number]:focus{border-color:var(--accent-color);outline:none}.board-size-options{flex:1;gap:.5rem;display:flex}.size-button{border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;flex:1;padding:.5rem 1rem;font-size:.9rem;font-weight:500}.size-button:hover{background-color:var(--bg-hover)}.size-button.active{background-color:var(--accent-color);color:#fff;border-color:var(--accent-color)}.dialog-buttons{border-top:1px solid var(--border-color);justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;display:flex}.dialog-buttons button{border:1px solid var(--border-color);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;padding:.5rem 1.5rem;font-size:.9rem;font-weight:500}.cancel-button{background-color:var(--bg-secondary);color:var(--text-primary)}.cancel-button:hover{background-color:var(--bg-hover)}.confirm-button{background-color:var(--accent-color);color:#fff;border-color:var(--accent-color)}.confirm-button:hover{opacity:.9}[data-theme=dark] .new-game-dialog{box-shadow:0 8px 32px #0009}.confirmation-overlay{z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.confirmation-dialog{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;min-width:300px;max-width:400px;padding:1.5rem;box-shadow:0 8px 32px #0000004d}.confirmation-dialog h2{color:var(--text-primary);margin:0 0 1rem;font-size:1.25rem}.confirmation-dialog p{color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.5}.confirmation-actions{justify-content:flex-end;gap:1rem;display:flex}.confirmation-actions button{cursor:pointer;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.confirmation-actions .cancel-button{border:1px solid var(--border-color);color:var(--text-primary);background:0 0}.confirmation-actions .cancel-button:hover{background-color:var(--bg-secondary)}.confirmation-actions .confirm-button{background-color:var(--accent-color);border:1px solid var(--accent-color);color:#fff}.confirmation-actions .confirm-button:hover{background-color:var(--accent-hover)}.save-file-dialog-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.save-file-dialog{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;min-width:400px;max-width:90vw;padding:24px;box-shadow:0 4px 20px #0000004d}.save-file-dialog h2{color:var(--text-primary);margin:0 0 20px;font-size:1.25rem;font-weight:600}.save-file-dialog-content{margin-bottom:24px}.save-file-dialog-content label{color:var(--text-primary);margin-bottom:8px;font-weight:500;display:block}.save-file-dialog-content input{border:1px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:4px;padding:10px 12px;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:14px}.save-file-dialog-content input:focus{border-color:var(--accent-color);outline:none;box-shadow:0 0 0 2px #3b82f61a}.save-file-dialog-hint{color:var(--text-secondary);min-height:16px;margin-top:6px;font-size:12px;display:block}.save-file-dialog-buttons{justify-content:flex-end;gap:12px;display:flex}.save-file-dialog-buttons button{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.button-secondary{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.button-secondary:hover{background:var(--bg-secondary);color:var(--text-primary)}.button-primary{background:var(--accent-color);color:#fff}.button-primary:hover{background:var(--accent-hover)}.button-primary:disabled{opacity:.5;cursor:not-allowed}.button-primary:disabled:hover{background:var(--accent-color)}.save-to-library-dialog{min-width:450px}.folder-selector{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:4px;max-height:200px;margin-top:8px;overflow-y:auto}.folder-item{cursor:pointer;color:var(--text-primary);align-items:center;gap:6px;padding:8px 12px;transition:background .15s;display:flex}.folder-item:hover{background:var(--bg-hover)}.folder-item.selected{background:var(--accent-color);color:#fff}.folder-item.selected:hover{background:var(--accent-hover)}.folder-item.root-folder{border-bottom:1px solid var(--border-color);font-weight:500}.folder-expand-icon{width:16px;height:16px;color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.folder-item.selected .folder-expand-icon{color:#ffffffb3}.folder-expand-placeholder{width:16px;height:16px}.folder-icon{color:var(--text-secondary);align-items:center;display:flex}.folder-item.selected .folder-icon{color:#ffffffe6}.folder-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toast{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);pointer-events:auto;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;min-width:250px;max-width:400px;padding:.75rem 1rem;animation:.2s ease-out slideIn;display:flex;box-shadow:0 4px 12px #00000026}.toast-success{border-left:4px solid #10b981}.toast-error{border-left:4px solid #ef4444}.toast-info{border-left:4px solid #3b82f6}.toast-close{color:var(--foreground);cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1;transition:opacity .2s}.toast-close:hover{opacity:1}.ai-info-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.ai-info-modal{background-color:var(--bg-secondary,#fff);border:1px solid var(--border-color,#e0e0e0);border-radius:12px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 10px 25px #0003}@media (max-width:640px){.ai-info-modal{max-width:calc(100% - 24px);margin:12px}}.ai-info-header{border-bottom:1px solid var(--border-color,#e0e0e0);background-color:var(--bg-tertiary,#f8f9fa);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.ai-info-title{color:var(--text-primary,#333);align-items:center;gap:10px;display:flex}.ai-info-icon-main{color:var(--accent-color,#007bff);font-size:1.2rem}.ai-info-title h2{margin:0;font-size:1.1rem;font-weight:600}.ai-info-close{cursor:pointer;color:var(--text-secondary,#666);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.ai-info-close:hover{color:var(--text-primary,#333);background-color:#0000000d}.ai-info-content{-webkit-overflow-scrolling:touch;flex:1;padding:0;overflow-y:auto}.ai-config-container{flex-direction:column;display:flex}.ai-config-section{border-bottom:1px solid var(--border-color,#eee);padding:16px 20px}.ai-config-section:last-child{border-bottom:none}.section-header{color:var(--text-secondary,#666);align-items:center;gap:8px;margin-bottom:12px;display:flex}.section-icon{font-size:.9rem}.section-header h3{text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.85rem;font-weight:600}.config-note{color:var(--text-secondary,#888);font-size:.75rem;font-style:italic}.model-library-list{flex-direction:column;gap:8px;display:flex}.model-library-item{background-color:var(--bg-tertiary,#f5f5f5);border:2px solid var(--border-color,#e0e0e0);border-radius:8px;justify-content:space-between;align-items:center;padding:12px;transition:all .2s;display:flex}.model-library-item.downloaded{cursor:pointer}.model-library-item.downloaded:hover{border-color:var(--accent-color,#007bff);background-color:var(--bg-hover,#f0f0f0)}.model-library-item.selected{border-color:var(--accent-color,#007bff);background-color:#007bff0d}.model-library-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.model-library-name{color:var(--text-primary,#333);align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:flex}.model-active-badge{background-color:var(--accent-color,#007bff);color:#fff;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:.7rem;font-weight:500;display:inline-flex}.model-recommended-badge{color:#fff;text-transform:uppercase;letter-spacing:.3px;background-color:#22c55e;border-radius:4px;align-items:center;padding:2px 6px;font-size:.65rem;font-weight:600;display:inline-flex}.model-default-badge{background-color:var(--text-secondary,#666);color:#fff;border-radius:4px;align-items:center;padding:2px 6px;font-size:.65rem;font-weight:500;display:inline-flex}.model-library-meta{color:var(--text-secondary,#666);flex-wrap:wrap;gap:4px 8px;font-size:.75rem;display:flex}.model-library-desc{word-break:break-word;flex:100%}.model-library-size{background-color:var(--bg-tertiary,#f0f0f0);border-radius:3px;flex-shrink:0;padding:1px 5px}.model-library-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:12px;display:flex}.model-action-btn{border:1px solid var(--border-color,#ccc);background-color:var(--bg-secondary,#fff);cursor:pointer;color:var(--text-primary,#333);border-radius:6px;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.model-action-btn:hover:not(:disabled){background-color:var(--bg-hover,#f0f0f0);border-color:var(--accent-color,#007bff)}.model-action-btn:disabled{opacity:.5;cursor:not-allowed}.model-action-btn.primary{background-color:var(--accent-color,#007bff);border-color:var(--accent-color,#007bff);color:#fff}.model-action-btn.primary:hover:not(:disabled){background-color:var(--accent-hover,#0056b3)}.model-action-btn.danger{color:#dc3545;border-color:#ffcdd2}.model-action-btn.danger:hover:not(:disabled){background-color:#ffebee;border-color:#dc3545}.model-download-progress{color:var(--accent-color,#007bff);align-items:center;gap:6px;font-size:.8rem;display:flex}.spinning{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.model-upload-section{border-top:1px dashed var(--border-color,#e0e0e0);margin-top:12px;padding-top:12px}.model-upload-btn{border:1px dashed var(--border-color,#ccc);cursor:pointer;width:100%;color:var(--text-secondary,#666);background-color:#0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:.85rem;transition:all .2s;display:flex}.model-upload-btn:hover:not(:disabled){border-color:var(--accent-color,#007bff);color:var(--accent-color,#007bff);background-color:#007bff0d}.model-upload-btn:disabled{opacity:.5;cursor:not-allowed}.settings-list{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.setting-item{background-color:var(--bg-tertiary,#f5f5f5);border:1px solid var(--border-color,#e0e0e0);border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.setting-item-toggle{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:12px}.setting-item-full{grid-column:1/-1}.setting-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.setting-label{color:var(--text-primary,#333);align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:flex}.setting-value{color:var(--accent-color,#007bff);background-color:#007bff1a;border-radius:4px;padding:2px 8px;font-size:.85rem;font-weight:500}.setting-description{color:var(--text-secondary,#666);margin:0;font-size:.75rem;line-height:1.4}@media (max-width:520px){.settings-list{grid-template-columns:1fr}.setting-item-full{grid-column:1}}.toggle-switch{background-color:var(--border-color,#ccc);cursor:pointer;border:none;border-radius:14px;flex-shrink:0;width:48px;height:28px;padding:0;transition:background-color .2s;position:relative}.toggle-switch:hover{background-color:var(--text-secondary,#999)}.toggle-switch.active{background-color:var(--accent-color,#007bff)}.toggle-switch.active:hover{background-color:var(--accent-hover,#0056b3)}.toggle-switch-handle{background-color:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-switch.active .toggle-switch-handle{transform:translate(20px)}.ai-select{border:1px solid var(--border-color,#ccc);background-color:var(--bg-secondary,#fff);width:100%;color:var(--text-primary,#333);cursor:pointer;border-radius:8px;padding:10px 12px;font-size:.85rem;transition:border-color .2s}.ai-select:hover{border-color:var(--accent-color,#007bff)}.ai-select:focus{border-color:var(--accent-color,#007bff);outline:none;box-shadow:0 0 0 2px #007bff1a}.ai-slider{background:var(--border-color,#ddd);-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3px;outline:none;width:100%;height:6px}.ai-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent-color,#007bff);cursor:pointer;border-radius:50%;width:18px;height:18px;transition:transform .1s;box-shadow:0 1px 3px #0003}.ai-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.ai-slider::-moz-range-thumb{background:var(--accent-color,#007bff);cursor:pointer;border:none;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 3px #0003}.legend-bar{justify-content:space-between;gap:4px;display:flex}.legend-item{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.swatch{border-radius:3px;width:100%;height:6px}.legend-text{text-align:center;flex-direction:column;align-items:center;display:flex}.legend-text strong{color:var(--text-primary,#333);font-size:.7rem}.legend-text span{color:var(--text-secondary,#888);font-size:.65rem}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.ai-info-modal{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0}.ai-info-header{padding:12px 16px}.ai-config-section{padding:16px}.settings-list{gap:16px}.setting-item{padding-bottom:14px}.setting-item-toggle{flex-direction:row}.setting-label{font-size:.85rem}.setting-description{font-size:.7rem}.toggle-switch{width:52px;height:30px}.toggle-switch-handle{width:24px;height:24px}.toggle-switch.active .toggle-switch-handle{transform:translate(22px)}.model-library-item{padding:10px}.model-library-info{font-size:.9em}.model-action-btn{padding:10px}}@media (prefers-color-scheme:dark){.ai-info-modal{background-color:#1e1e1e;border-color:#333}.ai-info-header{background-color:#252525;border-color:#333}.ai-info-title,.model-library-name,.legend-text strong,.setting-label{color:#eee}.ai-info-close{color:#aaa}.ai-info-close:hover{color:#fff;background-color:#ffffff1a}.ai-config-section{border-color:#333}.section-header,.config-note,.legend-text span,.setting-description,.model-library-meta{color:#aaa}.setting-item{border-color:#333}.setting-value{background-color:#007bff26}.toggle-switch{background-color:#444}.toggle-switch:hover{background-color:#555}.model-library-item{background-color:#252525;border-color:#333}.model-library-item.downloaded:hover{background-color:#2d2d2d;border-color:#007bff}.model-library-item.selected{background-color:#007bff1a}.model-action-btn{color:#eee;background-color:#2d2d2d;border-color:#444}.model-action-btn:hover:not(:disabled){background-color:#383838;border-color:#007bff}.model-upload-btn{color:#aaa;border-color:#444}.model-upload-btn:hover:not(:disabled){color:#007bff;border-color:#007bff}.ai-select{color:#eee;background-color:#2d2d2d;border-color:#444}.ai-slider{background:#444}}.app-dropzone-wrapper{width:100%;height:100%;position:relative}.app-dropzone-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;pointer-events:none;background:linear-gradient(135deg,#3b82f626 0%,#3b82f60d 100%);justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.app-dropzone-content{background:var(--bg-secondary);border:3px dashed var(--accent);text-align:center;border-radius:12px;padding:3rem 4rem;animation:1.5s ease-in-out infinite pulse;box-shadow:0 8px 32px #0003}.app-dropzone-icon{margin-bottom:1rem;font-size:4rem;animation:1s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.app-dropzone-text{color:var(--text-primary);font-size:1.5rem;font-weight:600}.app-dropzone-hint{color:var(--text-secondary);margin-top:.5rem;font-size:.875rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.landing-page{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.landing-content{flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:400px;animation:.5s ease-out fadeIn;display:flex}.landing-title{background:linear-gradient(135deg,var(--text-primary)0%,var(--text-secondary)100%);-webkit-text-fill-color:transparent;letter-spacing:-.05em;-webkit-background-clip:text;background-clip:text;margin:0;font-size:3.5rem;font-weight:800}.landing-subtitle{color:var(--text-secondary);margin:-1.5rem 0 0;font-size:1.1rem;font-weight:500}.landing-actions{flex-direction:column;gap:1rem;width:100%;margin-top:1rem;display:flex}.landing-button{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.75rem;padding:1rem;font-size:1.1rem;font-weight:600;transition:transform .1s,box-shadow .2s;display:flex}.landing-button:active{transform:scale(.98)}.landing-button.primary{background:var(--accent-color,#3b82f6);color:#fff;box-shadow:0 4px 12px #3b82f64d}.landing-button.secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.landing-drop-text{color:var(--text-secondary);justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;font-size:.9rem;display:flex}.landing-footer{color:var(--text-muted);opacity:.5;margin-top:auto;font-size:.8rem}.shudan-stone{border-radius:50%;width:90%;height:90%;transition:opacity .2s,transform .1s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 4px #0003}.shudan-stone.dead{opacity:.5;box-shadow:0 2px 4px #0003}.shudan-stone.dead:hover{opacity:.7}.shudan-vertex.shudan-dimmed{opacity:.5;position:relative}.shudan-vertex.shudan-dimmed:before,.shudan-vertex.shudan-dimmed:after{content:"";pointer-events:none;z-index:10;background-color:currentColor;width:65%;height:2px;position:absolute;top:50%;left:50%}.shudan-vertex.shudan-dimmed:before{transform:translate(-50%,-50%)rotate(45deg)}.shudan-vertex.shudan-dimmed:after{transform:translate(-50%,-50%)rotate(-45deg)}.shudan-vertex.shudan-dimmed.shudan-sign_1:before,.shudan-vertex.shudan-dimmed.shudan-sign_1:after{background-color:#fff}.shudan-vertex.shudan-dimmed.shudan-sign_-1:before,.shudan-vertex.shudan-dimmed.shudan-sign_-1:after{background-color:#000}.shudan-vertex .shudan-paint{z-index:0;overflow:hidden}.shudan-vertex .shudan-paint:before{content:"";opacity:var(--shudan-paint-opacity,0);background:0 0;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.shudan-vertex.shudan-paint_1 .shudan-paint:before{background:var(--shudan-black-background-color)}.shudan-vertex.shudan-paint_-1 .shudan-paint:before{background:var(--shudan-white-background-color)}@keyframes cursor-pulse{0%{opacity:.6;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}to{opacity:.6;transform:translate(-50%,-50%)scale(1)}}.shudan-cursor-marker{box-shadow:0 0 8px #3498db80}.shudan-vertex .shudan-heat{opacity:1;pointer-events:none;box-sizing:border-box;z-index:25;border:1px solid #0009;border-radius:50%;width:90%;height:90%;transition:opacity .5s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.shudan-vertex.shudan-heat_9 .shudan-heat{background:#17dea3;opacity:.9!important}.shudan-vertex.shudan-heat_8 .shudan-heat{background:#4998fe;opacity:.9!important}.shudan-vertex.shudan-heat_7 .shudan-heat{background:#6ed543;opacity:.9!important}.shudan-vertex.shudan-heat_6 .shudan-heat{background:#f1ad24;opacity:.9!important}.shudan-vertex.shudan-heat_5 .shudan-heat,.shudan-vertex.shudan-heat_4 .shudan-heat,.shudan-vertex.shudan-heat_3 .shudan-heat,.shudan-vertex.shudan-heat_2 .shudan-heat,.shudan-vertex.shudan-heat_1 .shudan-heat,.shudan-vertex.shudan-heat_0 .shudan-heat{background:#fa412d;opacity:.8!important}.board-controls{background:var(--bg-primary);border-top:1px solid var(--border-color);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"black nav white";align-items:center;gap:1rem;width:100%;padding:.75rem 1rem;display:grid}.player-info{align-items:center;gap:.75rem;display:flex}.player-info.player-black{grid-area:black;justify-content:flex-start;width:100%}.player-info.player-white{grid-area:white;justify-content:flex-end;width:100%}.player-indicator{border-radius:50%;flex-shrink:0;width:20px;height:20px;transition:all .2s}.player-indicator.active{animation:2.5s ease-in-out infinite pulse-border;transform:scale(1.15);box-shadow:0 0 0 3px #4a9eff,0 0 0 5px #4a9eff4d,0 0 12px #4a9eff80,0 2px 6px #0000004d}@keyframes pulse-border{0%,to{box-shadow:0 0 0 3px #4a9eff,0 0 0 5px #4a9eff4d,0 0 12px #4a9eff80,0 2px 6px #0000004d}50%{box-shadow:0 0 0 3px #4a9eff,0 0 0 5px #4a9eff66,0 0 14px #4a9eff99,0 2px 6px #0000004d}}.player-details{flex-direction:column;gap:.25rem;display:flex}.player-name{color:var(--foreground);font-size:.95rem;font-weight:600}.player-rank{color:var(--muted-foreground);opacity:.8;font-size:.85rem;font-weight:400}.player-captures{color:var(--foreground);font-size:.9rem;font-weight:600}.navigation-section{z-index:10;flex-direction:column;grid-area:nav;justify-content:center;align-items:center;gap:.25rem;display:flex}.branch-controls-row{align-items:center;gap:.5rem;margin-bottom:2px;display:flex}.main-nav-row{align-items:center;gap:.5rem;display:flex}.branch-info-display{background:var(--bg-secondary);cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:2px;min-width:100px;padding:2px 8px;font-size:.85rem;transition:all .15s;display:flex}.branch-info-display:hover{background:var(--bg-hover);border-color:var(--border)}.branch-label{color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.5px;margin-right:4px;font-size:.8rem}.branch-current{color:var(--foreground);font-weight:600}.branch-separator{color:var(--muted-foreground);margin:0 1px}.branch-total{color:var(--muted-foreground)}.branch-depth{color:var(--accent);background:var(--accent-background,rgba(var(--accent-rgb,59,130,246),.15));border-radius:4px;margin-left:4px;padding:1px 4px;font-size:.7rem;font-weight:500}.edit-hint-icon{opacity:.5;color:var(--muted-foreground);margin-left:6px}.branch-info-display:hover .edit-hint-icon{opacity:1;color:var(--accent)}.branch-edit-container{align-items:center;gap:4px;display:flex}.nav-button{background:var(--background);border:1px solid var(--border);cursor:pointer;color:var(--foreground);border-radius:6px;justify-content:center;align-items:center;min-width:44px;height:44px;padding:.5rem .75rem;font-size:1rem;transition:all .15s;display:inline-flex}.nav-button:hover:not(:disabled){background-color:var(--bg-hover)}.nav-button:active:not(:disabled){background-color:var(--bg-active)}.nav-button:disabled{opacity:.4;cursor:not-allowed}.move-display{flex-direction:column;align-items:center;min-width:140px;padding:0 1rem;display:flex}.move-number{color:var(--foreground);justify-content:center;align-items:center;font-size:.95rem;font-weight:600;display:flex}.move-number-display{align-items:center;gap:4px;display:inline-flex}.move-number-display:hover .edit-hint-icon{opacity:1;color:var(--accent)}.branch-info{color:var(--muted-foreground);opacity:.6;font-size:.85rem;font-weight:400}.editable-value{cursor:pointer;border-radius:4px;margin:0 -4px;padding:0 4px;transition:background-color .15s}.editable-value:hover{background-color:var(--bg-hover)}.edit-input{border:1px solid var(--border);background:var(--background);width:50px;color:var(--foreground);text-align:center;border-radius:4px;padding:2px 4px;font-size:.9rem;font-weight:600}.edit-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #4a9eff33}.edit-input-small{width:35px;font-size:.85rem;font-weight:400}.edit-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.edit-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.edit-input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.current-player{color:var(--muted-foreground);justify-content:center;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.current-player-stone{vertical-align:middle;display:inline-block}.branch-nav{border-left:1px solid var(--border);flex-direction:column;gap:2px;margin-left:.5rem;padding-left:.5rem;display:flex}.branch-nav-button{background:var(--background);border:1px solid var(--border);cursor:pointer;color:var(--muted-foreground);border-radius:4px;justify-content:center;align-items:center;padding:.25rem .4rem;line-height:1;transition:all .15s;display:inline-flex}.branch-nav-button:hover{background-color:var(--bg-hover);color:var(--foreground)}.branch-nav-button:active{background-color:var(--bg-active)}.scoring-toggle-button{background:var(--accent);color:var(--accent-foreground);cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.5rem;height:44px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .15s;display:inline-flex}.scoring-toggle-button:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.scoring-toggle-button:active{transform:translateY(0)}.scoring-button{background:var(--bg-primary);border:1px solid var(--border-color);cursor:pointer;color:var(--foreground);border-radius:6px;align-items:center;gap:.5rem;height:44px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .15s;display:inline-flex}.scoring-button:hover:not(:disabled){background-color:var(--bg-hover)}.scoring-button:disabled{opacity:.5;cursor:not-allowed}.scoring-button.scoring-auto{color:var(--accent-primary)!important;border:1px solid var(--accent-primary)!important;background:0 0!important}.scoring-button.scoring-auto:hover:not(:disabled){opacity:1;background:var(--accent-primary)!important;color:#fff!important;border-color:var(--accent-primary)!important}.scoring-button.scoring-done{color:#ef4444!important;background:0 0!important;border:1px solid #ef4444!important}.scoring-button.scoring-done:hover{opacity:1;color:#fff!important;background:#ef4444!important;border-color:#ef4444!important}.spinner{animation:1s linear infinite spin}.scoring-controls-row{justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}@media (max-width:1024px){.board-controls{grid-template:"black white""nav nav"/1fr 1fr;gap:.5rem}.player-info.player-black{grid-area:black;justify-content:flex-start}.player-info.player-white{text-align:right;flex-direction:row;grid-area:white;justify-content:flex-end}.navigation-section{grid-area:nav;width:100%;margin-top:.25rem}}@media (max-width:767px){.board-controls{gap:.25rem;padding:.25rem .5rem}.player-info{gap:.375rem}.player-indicator{width:16px;height:16px}.player-name{text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:.85rem;overflow:hidden}.player-captures{font-size:.75rem}.player-info.player-white .player-details{align-items:flex-end}.nav-button{min-width:32px;height:32px;padding:.125rem .25rem;font-size:.9rem}.move-number{font-size:.85rem}}@media (max-height:500px){.board-controls{flex-flow:row;justify-content:space-between;gap:.5rem;padding:.25rem .5rem;display:flex}@media (max-width:600px){.board-controls{flex-wrap:wrap}}.player-info{flex-shrink:1;width:auto;overflow:hidden}.player-name{max-width:80px}.navigation-section{flex-shrink:0;order:2;grid-area:auto;width:auto}.player-info.player-black{order:1}.player-info.player-white{order:3}.nav-button{height:32px;padding:0 .5rem}}.score-estimator{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;width:100%;padding:8px}.score-estimator-content{flex-direction:column;gap:8px;display:flex}.score-section{gap:8px;display:flex}.score-player{border:2px solid #0000;border-radius:6px;flex:1;padding:12px}.score-player.black{background:#0000000d;border-color:#333}.score-player.white{background:#fffc;border-color:#ddd}[data-theme=dark] .score-player.black{background:#0000004d;border-color:#666}[data-theme=dark] .score-player.white{background:#ffffff1a;border-color:#888}.score-player-name{text-align:center;color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:600}.score-player-rank{color:var(--text-secondary);opacity:.85;font-size:12px;font-weight:400}.score-breakdown{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.score-item{color:var(--text-secondary);justify-content:space-between;font-size:12px;display:flex}.score-label{font-weight:500}.score-value{color:var(--text-primary);font-weight:600}.score-total{border-top:1px solid var(--border);color:var(--text-primary);justify-content:space-between;padding-top:8px;font-size:14px;font-weight:700;display:flex}.score-result{text-align:center;background:var(--bg-secondary);border:2px solid var(--accent);border-radius:6px;padding:16px}.score-winner{color:var(--accent);font-size:16px;font-weight:700}.score-info{text-align:center;color:var(--text-secondary);font-size:11px}.score-info p{margin:4px 0}.score-dead-count{color:var(--text-primary);font-weight:600}@media (max-width:1440px){.score-estimator{background:0 0;border:none;padding:0}.score-estimator-content{gap:4px}.score-player{background:var(--bg-secondary);border:1px solid var(--border);padding:6px 8px}[data-theme=dark] .score-player.black,[data-theme=dark] .score-player.white{background:var(--bg-secondary);border-color:var(--border)}.score-player-name{margin-bottom:4px;font-size:13px}.score-breakdown{gap:2px;margin-bottom:6px}.score-item{font-size:11px}.score-total{margin-top:2px;padding-top:4px;font-size:13px}.score-result{padding:8px;font-size:14px}.score-winner{font-size:14px}.score-info{display:none}}.edit-toolbar{background:var(--background);border-left:1px solid var(--border);flex-direction:column;gap:8px;min-width:96px;max-width:96px;padding:8px 6px;display:flex;overflow:hidden auto}.edit-toolbar-group{flex-direction:column;gap:4px;display:flex}.edit-toolbar-group-label{text-transform:uppercase;color:var(--text-secondary);text-align:center;letter-spacing:.5px;width:100%;margin-bottom:2px;font-size:10px;font-weight:600}.edit-toolbar-buttons{flex-flow:wrap;justify-content:center;gap:6px;display:flex}.edit-toolbar-button{background:var(--background-secondary);cursor:pointer;width:38px;height:38px;color:var(--text);border:2px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.edit-toolbar-button:hover:not(:disabled){background:var(--background-hover);border-color:var(--primary);transform:scale(1.05)}.edit-toolbar-button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.edit-toolbar-button:disabled{opacity:.3;cursor:not-allowed}.edit-toolbar-divider{background:var(--border);height:1px;margin:4px 0}.stone-icon{border-radius:50%;width:18px;height:18px;box-shadow:0 2px 4px #0003}.stone-icon.black-stone{background:radial-gradient(circle at 30% 30%,#666,#000)}.stone-icon.white-stone{background:radial-gradient(circle at 30% 30%,#fff,#ddd);border:1px solid #999}.edit-toolbar-button.active .stone-icon.black-stone{background:radial-gradient(circle at 30% 30%,#888,#222);box-shadow:0 0 0 2px #fff}.edit-toolbar-button.active .stone-icon.white-stone{box-shadow:0 0 0 2px var(--primary)}@media (max-width:1440px){.edit-toolbar{border-left:none;border-top:1px solid var(--border);flex-direction:row;gap:12px;width:100%;min-width:0;max-width:100%;height:auto;padding:6px 8px;overflow:auto hidden}.edit-toolbar-group{flex-direction:row;align-items:center;gap:8px}.edit-toolbar-divider{width:1px;height:24px;margin:0 4px}.edit-toolbar-group-label{display:none}.edit-toolbar-buttons{flex-wrap:nowrap}.edit-toolbar-button{flex-shrink:0}}.move-strength-info-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.move-strength-info-modal{background:var(--bg-primary,#fff);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:420px;overflow:hidden;box-shadow:0 8px 32px #0000004d}.move-strength-info-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.move-strength-info-header h3{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:600}.move-strength-info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.25rem;transition:background-color .15s;display:flex}.move-strength-info-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.move-strength-info-content{max-height:80vh;padding:1.25rem;overflow-y:auto}.move-strength-info-description{color:var(--text-secondary);margin:0 0 1.25rem;font-size:.9rem;line-height:1.5}.move-strength-legend{flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}.move-strength-item{align-items:center;gap:.75rem;display:flex}.move-strength-swatch{border-radius:4px;flex-shrink:0;width:24px;height:24px;box-shadow:0 1px 3px #0003}.move-strength-text{flex-direction:column;gap:.1rem;display:flex}.move-strength-text strong{color:var(--text-primary);font-size:.9rem;font-weight:600}.move-strength-text span{color:var(--text-secondary);font-size:.8rem}.move-strength-info-note{background:var(--bg-secondary,#f5f5f5);color:var(--text-secondary);border-radius:8px;margin-bottom:1rem;padding:.875rem 1rem;font-size:.85rem;line-height:1.5}.move-strength-info-note strong{color:var(--text-primary)}.heatmap-legend{border-top:1px solid var(--border-color);margin-top:1rem;padding-top:1rem}.heatmap-legend h4{color:var(--text-primary);margin:0 0 .5rem;font-size:.95rem}.heatmap-legend p{color:var(--text-secondary);margin-bottom:.75rem;font-size:.9rem;line-height:1.4}.heatmap-legend-items{grid-template-columns:1fr 1fr;gap:.5rem;font-size:.85rem;display:grid}.heatmap-legend-item{align-items:center;gap:.5rem;display:flex}.heatmap-swatch{border-radius:2px;width:16px;height:16px}.heatmap-swatch.black-area{background-color:#00000080;border:1px solid #fff3}.heatmap-swatch.white-area{background-color:#ffffff80;border:1px solid #0000001a}.gameboard-container{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.gameboard-board-area{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}@media (max-width:1024px){.gameboard-board-area{flex-direction:column}}.gameboard-board-wrapper{flex:1;justify-content:center;align-items:center;min-height:0;padding:10px;display:flex;position:relative;overflow:hidden}@media (max-width:1024px) and (orientation:landscape){.gameboard-board-area{justify-content:center;align-items:center;width:100%;height:100%}.gameboard-board-wrapper{aspect-ratio:1;flex:0 auto;width:auto;max-width:100%;height:100%}}.gameboard-actions-bar{background-color:var(--background);border-bottom:1px solid var(--border);flex-shrink:0;gap:.5rem;padding:.5rem;display:flex}.gameboard-actions-spacer{flex:1}.gameboard-action-button{border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:background-color var(--transition-fast);border-radius:4px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.8rem;font-weight:500;display:inline-flex}.gameboard-action-button:hover{background-color:var(--bg-hover)}.gameboard-action-button:active{background-color:var(--bg-active)}.gameboard-action-button:disabled{opacity:.5;cursor:not-allowed}.gameboard-pass-button{background-color:var(--bg-secondary);border-color:var(--border-color)}.gameboard-resign-button{color:var(--destructive);border-color:var(--destructive-border,#ef44444d)}.gameboard-resign-button:hover:not(:disabled){background-color:var(--destructive-transparent,#ef44441a);border-color:var(--destructive)}.gameboard-action-button.active{background-color:var(--accent);color:var(--accent-foreground);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light,#3b82f64d)}.gameboard-action-button.active:hover{background-color:var(--accent-hover,var(--accent))}.gameboard-topmoves-button.active,.gameboard-heatmap-button.active{color:var(--accent)!important;border-color:var(--accent)!important;box-shadow:none!important;background-color:#0000!important}.gameboard-topmoves-button.active:hover,.gameboard-heatmap-button.active:hover{background-color:var(--bg-hover,#8080801a)!important}.gameboard-score-button{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.gameboard-score-button:hover:not(:disabled){background-color:var(--bg-hover)}.gameboard-navigation-button{background-color:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-color)}.gameboard-navigation-button:hover:not(:disabled){background-color:var(--bg-hover)}.gameboard-action-button.analyzing{background-color:var(--warning,#f59e0b);color:#fff;border-color:var(--warning,#f59e0b);animation:1.5s ease-in-out infinite pulse-analyzing}.gameboard-action-button.analyzing:hover{background-color:var(--warning-hover,#d97706);border-color:var(--warning-hover,#d97706)}@keyframes pulse-analyzing{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 4px #f59e0b00}}.ai-analysis-summary{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);min-height:2.5rem;transition:background-color var(--transition-fast);justify-content:center;align-items:center;margin-bottom:10px;padding:.5rem 1rem;font-size:.9rem;display:flex}.ai-analysis-summary__content{justify-content:space-between;align-items:center;gap:1.5rem;width:100%;display:flex}.ai-analysis-summary__stone{border-radius:50%;flex-shrink:0;width:1.1rem;height:1.1rem;position:relative;box-shadow:0 1px 2px #0000004d}.ai-analysis-summary__stone--black{background:radial-gradient(circle at 30% 30%,#555,#000);border:1px solid #ffffff1a}.ai-analysis-summary__stone--white{background:radial-gradient(circle at 30% 30%,#fff,#ddd);border:1px solid #0000001a}.ai-analysis-summary__metrics-group{align-items:center;gap:1.5rem;display:flex}.ai-analysis-summary__metric{align-items:baseline;gap:.5rem;display:flex}.ai-analysis-summary__metric-value{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:1.1rem;font-weight:700;line-height:1}.ai-analysis-summary__metric-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.7rem;font-weight:600}.ai-analysis-summary__separator{background-color:var(--border-color);width:1px;height:1rem}.ai-analysis-summary__error{color:#ef4444;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;display:flex}.ai-analysis-summary__loading{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;display:flex}.ai-analysis-summary__spinner{font-size:1rem;animation:1s linear infinite spin;display:inline-block}.ai-analysis-summary__empty{color:var(--text-secondary);opacity:.8;font-size:.85rem;font-style:italic}.ai-analysis-summary__actions{align-items:center;gap:.5rem;display:flex}.ai-analysis-summary__loading-indicator{border-right:1px solid var(--border);align-items:center;min-width:180px;height:100%;margin-right:1rem;padding-right:1rem;display:flex}.ai-analysis-summary__loading-text{white-space:nowrap;margin-left:.5rem;font-size:.9em}.ai-analysis-summary__progress{color:var(--text-secondary);white-space:nowrap;min-width:160px;font-size:.75rem}.ai-analysis-summary__progress--success{color:var(--success,#22c55e)}@media (max-width:767px),(max-height:500px){.gameboard-actions-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0;gap:.25rem;margin-left:0;padding:.375rem .5rem;scroll-padding-left:.5rem;display:flex;overflow:auto hidden}.gameboard-actions-bar::-webkit-scrollbar{display:none}.gameboard-action-button{flex-shrink:0;justify-content:center;min-width:44px;height:44px;padding:0;font-size:.75rem}.gameboard-action-button .btn-text{display:none}.gameboard-resign-button{color:var(--destructive)}.gameboard-pass-button{font-weight:700}.ai-analysis-summary{-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:4px;min-height:auto;margin-bottom:4px;margin-left:.5rem;margin-right:.5rem;padding:.375rem .5rem;font-size:.8rem;overflow-x:auto}.ai-analysis-summary::-webkit-scrollbar{display:none}.ai-analysis-summary__content{justify-content:flex-start;gap:.5rem;width:max-content;min-width:100%}.ai-analysis-summary__metrics-group{flex-wrap:nowrap;gap:.5rem}.ai-analysis-summary__metric{flex-direction:column;flex-shrink:0;align-items:center;gap:0}.ai-analysis-summary__metric-value{font-size:.95rem}.ai-analysis-summary__metric-label{font-size:.6rem}.ai-analysis-summary__separator{display:none}.ai-analysis-summary__loading-indicator{min-width:auto;margin-right:.5rem;padding-right:.5rem}.ai-analysis-summary__loading-text{display:none}.ai-analysis-summary__actions{flex-shrink:0;gap:.25rem}.ai-analysis-summary__actions .gameboard-action-button{min-width:36px;height:36px;padding:0}.ai-analysis-summary__actions .gameboard-action-button.gameboard-topmoves-button{min-width:36px;height:36px}.ai-analysis-summary__progress,.ai-analysis-summary__loading>span:not(.ai-analysis-summary__spinner){display:none}}@media (max-height:500px){.gameboard-action-button{min-width:44px;height:44px;padding:0}.ai-analysis-summary{margin-bottom:2px;padding:.25rem .5rem}}.react-flow{direction:ltr}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1px;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus{outline:none}.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path{stroke:#555}.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background:#1a192b;border:1px solid #fff;border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-top{top:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{top:50%;right:-4px;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{background:#ffffff80;margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus{outline:none}.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{color:#222;text-align:center;background-color:#fff;border:1px solid #1a192b;border-radius:3px;width:150px;padding:10px;font-size:12px}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-default.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-input.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__selection:focus{outline:none}.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{box-sizing:content-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fefefe;border:none;border-bottom:1px solid #eee;justify-content:center;align-items:center;width:16px;height:16px;padding:5px;display:flex}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;width:4px;height:4px;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__attribution{display:none!important}.react-flow__controls{background:var(--bg-secondary,#000c)!important;border:1px solid var(--border-color,#333)!important}.react-flow__controls-button{background:var(--bg-secondary,#000c)!important;border-bottom:1px solid var(--border-color,#333)!important;color:var(--text-primary,#fff)!important}.react-flow__controls-button:hover{background:var(--bg-hover,#ffffff1a)!important}.react-flow__controls-button svg{fill:var(--text-primary,#fff)!important}.tree-canvas-container{flex:1;position:relative;overflow:auto}.gametree-graph-container{background-color:var(--background);flex:1;position:relative;overflow:auto}.gametree-graph-canvas{cursor:pointer;display:block}.tree-canvas-container::-webkit-scrollbar{width:8px;height:8px}.tree-canvas-container::-webkit-scrollbar-track{background:var(--bg-secondary)}.tree-canvas-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.tree-canvas-container::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.game-tree-layout-toggle-group{align-items:center;gap:4px;display:flex}.game-tree-layout-toggle{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:.375rem;display:flex}.game-tree-layout-toggle:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent-primary)}.game-tree-layout-toggle:active{transform:scale(.95)}.game-tree-layout-toggle svg{display:block}.game-tree-controls{align-items:center;gap:4px;display:flex}.game-tree-control-btn{border:1px solid var(--border-color);min-width:32px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:.375rem;font-size:14px;display:flex}.game-tree-control-icon{width:16px;height:16px;display:block}.game-tree-control-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent-primary)}.game-tree-control-btn.active{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.game-info-editor{background:var(--background);flex-direction:column;flex:1;display:flex;overflow:hidden}.info-edit-button{cursor:pointer;color:var(--muted-foreground);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.35rem;transition:all .2s;display:flex}.info-edit-button:hover,.info-edit-button.active{background:var(--accent);color:var(--accent-foreground)}.info-save-button,.info-cancel-button{border:1px solid var(--border);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:.4rem .8rem;font-size:.85rem;transition:all .2s}.info-save-button{background:var(--accent);color:var(--accent-foreground);border-color:var(--accent);margin-right:.5rem}.info-save-button:hover{opacity:.9}.info-cancel-button:hover{background:var(--muted);border-color:var(--border)}.info-actions{gap:.5rem;display:flex}.game-info-display{-webkit-user-select:text;user-select:text;padding:.5rem}.game-info-row{flex-wrap:wrap;align-items:baseline;gap:.25rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.game-info-row strong{color:var(--foreground);flex-shrink:0;margin-right:.25rem}.game-info-row em{color:var(--muted-foreground)}.editable-field{cursor:pointer;border-radius:3px;padding:.1rem .25rem;transition:background-color .15s}.editable-field:hover{background-color:var(--bg-hover,#0000000d)}.editable-field.edit-mode{background-color:var(--bg-hover,#00000008);border:1px dashed var(--border);padding:.05rem .2rem}.editable-field.edit-mode:hover{background-color:var(--accent-light,#4a90e21a);border-color:var(--accent)}.editable-rank{font-size:.85em}.empty-placeholder{color:var(--muted-foreground);font-style:italic}.inline-edit-input{border:1px solid var(--accent);background:var(--bg-secondary,var(--background));color:var(--foreground);border-radius:3px;outline:none;min-width:80px;max-width:150px;padding:.15rem .35rem;font-size:.9rem}.inline-edit-input:focus{box-shadow:0 0 0 2px #4a90e233}.inline-edit-input-small{min-width:50px;max-width:80px}.inline-edit-input[type=number]{min-width:60px;max-width:80px}.game-info-form{max-height:400px;padding:1rem;overflow-y:auto}.form-row{flex-direction:column;margin-bottom:.75rem;display:flex}.form-row label{color:var(--foreground);margin-bottom:.25rem;font-size:.85rem;font-weight:600}.form-row input{border:1px solid var(--border);background:var(--background);color:var(--foreground);border-radius:3px;padding:.5rem;font-size:.9rem}.form-row input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #4a90e21a}.info-hint{color:var(--muted-foreground);background:var(--muted);border-radius:3px;margin-top:.5rem;padding:.5rem;font-size:.75rem}[data-theme=dark] .game-info-display:hover{background:var(--muted)}[data-theme=dark] .editable-field:hover{background-color:#ffffff0d}[data-theme=dark] .editable-field.edit-mode{background-color:#ffffff08}[data-theme=dark] .editable-field.edit-mode:hover{background-color:#4a90e226}[data-theme=dark] .inline-edit-input{background:var(--bg-tertiary,#1a1a1a);color:var(--foreground)}.save-button:hover{background:var(--success-hover,#4cae4c)}.cancel-button{background:var(--button-secondary,#e0e0e0);color:var(--text-primary,#333)}.cancel-button:hover{background:var(--button-secondary-hover,#d0d0d0)}[data-theme=dark] .game-info-display,[data-theme=dark] .game-info-editor{background:var(--bg-secondary,#2a2a2a)}[data-theme=dark] .game-info-row strong,[data-theme=dark] .form-row label{color:var(--text-primary,#e0e0e0)}[data-theme=dark] .form-row input{background:var(--bg-tertiary,#1a1a1a);color:var(--text-primary,#e0e0e0);border-color:var(--border,#444)}[data-theme=dark] .cancel-button{background:var(--button-secondary,#444);color:var(--text-primary,#e0e0e0)}[data-theme=dark] .cancel-button:hover{background:var(--button-secondary-hover,#555)}.game-info-link{color:var(--accent,#4a9eff);word-break:break-all;text-decoration:none;transition:all .2s}.game-info-link:hover{color:var(--accent-foreground,#6bb6ff);text-decoration:underline}.comment-editor{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.move-number{color:var(--muted-foreground);text-transform:none;opacity:.85;font-size:.8rem;font-weight:400}.comment-edit-button{cursor:pointer;color:var(--muted-foreground);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.35rem;transition:all .2s;display:flex}.comment-edit-button:hover{background:var(--accent);color:var(--accent-foreground)}.comment-save-button,.comment-cancel-button{border:1px solid var(--border);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:.4rem .8rem;font-size:.85rem;transition:all .2s}.comment-save-button{background:var(--accent);color:var(--accent-foreground);border-color:var(--accent);margin-right:.5rem}.comment-save-button:hover{opacity:.9}.comment-cancel-button:hover{background:var(--muted);border-color:var(--border)}.comment-actions{gap:.5rem;display:flex}.comment-display{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.comment-markdown{color:var(--foreground);-webkit-user-select:text;user-select:text;flex:1;min-height:0;padding:1rem;line-height:1.6;overflow-y:auto}.comment-markdown p{white-space:pre-wrap;margin:.5rem 0}.comment-markdown p:first-child{margin-top:0}.comment-markdown p:last-child{margin-bottom:0}.comment-markdown h2,.comment-markdown h3,.comment-markdown h4,.comment-markdown h5,.comment-markdown h6{color:var(--text);margin-top:1rem;margin-bottom:.5rem;font-weight:600}.comment-markdown h1{font-size:1.5rem}.comment-markdown h2{font-size:1.3rem}.comment-markdown h3{font-size:1.1rem}.comment-markdown p{margin:.5rem 0}.comment-markdown code{background:var(--hover-background);border-radius:3px;padding:.2rem .4rem;font-family:Monaco,Courier New,monospace;font-size:.9em}.comment-markdown pre{background:var(--hover-background);border-radius:4px;padding:1rem;overflow-x:auto}.comment-markdown pre code{background:0 0;padding:0}.comment-markdown ul,.comment-markdown ol{margin:.5rem 0;padding-left:2rem}.comment-markdown blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);margin:.5rem 0;padding-left:1rem}.comment-markdown a{color:var(--accent);text-decoration:none}.comment-markdown a:hover{text-decoration:underline}.comment-markdown table{border-collapse:collapse;width:100%;margin:1rem 0}.comment-markdown th,.comment-markdown td{border:1px solid var(--border);text-align:left;padding:.5rem}.comment-markdown th{background:var(--hover-background);font-weight:600}.comment-empty{color:var(--text-secondary);cursor:pointer;text-align:center;padding:1rem;font-style:italic}.comment-empty:hover{background:var(--hover-background);border-radius:4px}.comment-editor-container{flex-direction:column;flex:1;display:flex;overflow:hidden}.comment-textarea{background:var(--background);color:var(--text);resize:none;border:none;outline:none;flex:1;padding:1rem;font-family:Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6}.comment-textarea::placeholder{color:var(--text-secondary)}.comment-hint{background:var(--hover-background);color:var(--text-secondary);border-top:1px solid var(--border);padding:.5rem 1rem;font-size:.75rem}.loading-overlay{z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.loading-modal{background:var(--bg-primary,#fff);border-radius:8px;min-width:300px;max-width:400px;overflow:hidden;box-shadow:0 10px 30px #0000004d}.loading-header{border-bottom:1px solid var(--border-color,#e0e0e0);padding:1.5rem 1.5rem 1rem}.loading-header h3{color:var(--text-primary,#333);text-align:center;margin:0;font-size:1.1rem;font-weight:600}.loading-content{flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;display:flex}.loading-spinner{border:3px solid var(--border-color,#e0e0e0);border-top:3px solid var(--accent-primary,#007acc);border-radius:50%;width:40px;height:40px;animation:1s linear infinite loading-spin}@keyframes loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-progress-container{align-items:center;gap:1rem;width:100%;display:flex}.loading-progress-bar{background:var(--bg-tertiary,#f0f0f0);border-radius:4px;flex:1;height:8px;overflow:hidden}.loading-progress-fill{background:var(--accent-primary,#007acc);border-radius:4px;height:100%;transition:width .3s}.loading-progress-text{color:var(--text-primary,#333);text-align:right;min-width:40px;font-size:.9rem;font-weight:600}.loading-message{color:var(--text-secondary,#666);text-align:center;min-height:1.2rem;font-size:.9rem}@media (prefers-color-scheme:dark){.loading-overlay{background:#000c}.loading-modal{background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#3e3e3e)}.loading-header h3{color:var(--text-primary,#fff)}.loading-progress-bar{background:var(--bg-tertiary,#3e3e3e)}.loading-progress-text{color:var(--text-primary,#fff)}.loading-message{color:var(--text-secondary,#ccc)}}.save-status{color:var(--text-secondary,#666);background:var(--bg-secondary,#f5f5f5);border-radius:4px;align-items:center;gap:.5rem;padding:.25rem .75rem;font-size:.875rem;transition:opacity .3s;display:flex}.save-status-icon{font-size:.75rem;font-weight:700}.save-status-icon.saving{color:var(--color-primary,#4a90e2);animation:1s ease-in-out infinite pulse}.save-status-icon.saved{color:var(--color-success,#4caf50)}.save-status-text{font-weight:500}@media (prefers-color-scheme:dark){.save-status{color:var(--text-secondary-dark,#aaa);background:var(--bg-secondary-dark,#2a2a2a)}}.analysis-chart-container{background:var(--bg-secondary);border-radius:4px;flex-direction:column;height:100%;display:flex;position:relative}.analysis-chart-empty{color:var(--text-secondary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.analysis-chart-empty p{margin:0}.analysis-chart-empty p:first-child{color:var(--text-primary);font-weight:600}.analysis-chart-hint{opacity:.7;font-size:.75rem}.analysis-chart-toggles{border-bottom:1px solid var(--border-color);flex-shrink:0;gap:.5rem;padding:.5rem .75rem;display:flex}.analysis-chart-toggle{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.75rem;transition:all .15s;display:flex}.analysis-chart-toggle:hover{background:var(--bg-tertiary)}.analysis-chart-toggle.active{color:var(--text-primary);background:var(--bg-tertiary);border-color:var(--accent-color)}.toggle-indicator{border-radius:2px;width:10px;height:10px}.toggle-winrate{background:var(--chart-winrate-line)}.toggle-score{background:var(--chart-score)}.analysis-chart-current-info{border-top:1px solid var(--border-color);flex-shrink:0;justify-content:center;align-items:center;gap:1rem;padding:.5rem .75rem;font-size:.9rem;display:flex}.current-move{color:var(--text-secondary);font-weight:500}.current-winrate{color:var(--chart-winrate-line);font-weight:600}.current-score{font-weight:600}.current-no-data{color:var(--text-secondary);opacity:.7;font-style:italic}.analysis-chart-wrapper{flex:none;width:100%;height:150px;padding:.25rem .5rem;display:flex}.analysis-chart-svg{flex-shrink:0;display:block}.chart-background{fill:var(--chart-bg)}.chart-midline,.chart-zeroline{stroke:var(--chart-grid);stroke-width:1px;stroke-dasharray:4 2}.winrate-area-black{fill:var(--chart-black);opacity:.25}.winrate-area-white{fill:var(--chart-white);opacity:.25}.chart-line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.winrate-line{stroke:var(--chart-winrate-line)}.score-line{stroke:var(--chart-score)}.chart-current-line{stroke:var(--chart-current-position);stroke-width:2px;opacity:.9}.chart-hover-line{stroke:var(--text-secondary);stroke-width:1px;stroke-dasharray:2 2;opacity:.5}.axis-line,.axis-tick{stroke:var(--border-color);stroke-width:1px}.axis-label{fill:var(--text-secondary);font-size:12px}.axis-label-small{opacity:.8;font-size:11px}.axis-left .axis-label{text-anchor:end}.axis-right .axis-label{text-anchor:start}.axis-label-bottom{text-anchor:middle}.winrate-label-top,.winrate-label-mid,.winrate-label-bottom{fill:var(--chart-winrate-line);font-weight:500}.score-label-value{fill:var(--chart-score);font-weight:500}.axis-title{text-anchor:middle;font-size:11px;font-weight:600}.winrate-axis-title{fill:var(--chart-winrate-line)}.score-axis-title{fill:var(--chart-score)}.analysis-chart-tooltip{background:var(--bg-primary);border:1px solid var(--border-color);z-index:100;pointer-events:none;border-radius:6px;min-width:140px;padding:.5rem .75rem;position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}.tooltip-header{color:var(--text-primary);text-align:center;margin-bottom:.35rem;font-size:.75rem;font-weight:600}.tooltip-row{justify-content:space-between;gap:.75rem;font-size:.7rem;display:flex}.tooltip-label{color:var(--text-secondary)}.tooltip-value{font-weight:500}.winrate-value{color:var(--text-primary)}.score-positive{color:var(--chart-black)}.score-negative{color:var(--chart-white)}.analysis-chart-perspective-note{text-align:center;color:var(--chart-white);margin-top:4px;padding:0 8px;font-size:.75rem}.analysis-chart-perspective-note em{font-style:italic}:root{--chart-bg:#00000005;--chart-grid:#8080804d;--chart-black:#1a1a1a;--chart-white:#a0a0a0;--chart-score:#2196f3;--chart-winrate-line:#9c27b0;--chart-current-position:#1a1a1a}[data-theme=dark]{--chart-bg:#ffffff05;--chart-grid:#80808033;--chart-black:#f5f5f5;--chart-white:#707070;--chart-score:#64b5f6;--chart-winrate-line:#ce93d8;--chart-current-position:#fff}.analysis-graph-panel{background-color:var(--bg-secondary);flex-direction:column;height:100%;display:flex;overflow:hidden}.analysis-graph-placeholder{color:var(--text-secondary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.analysis-graph-placeholder p{margin:0}.analysis-graph-placeholder p:first-child{color:var(--text-primary);font-weight:600}.analysis-graph-hint{opacity:.7;font-size:.75rem}.analysis-run-button{color:var(--text-primary);background:var(--bg-tertiary,#80808033);border:1px solid var(--border-color,#8080804d);cursor:pointer;border-radius:6px;margin-top:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s}.analysis-run-button:hover:not(:disabled){background:var(--bg-hover,#8080804d)}.analysis-run-button:disabled{opacity:.6;cursor:not-allowed}.analysis-progress-title{color:var(--text-primary);margin-bottom:.5rem;font-weight:600}.analysis-progress-bar-container{background:var(--bg-tertiary,#80808033);border-radius:4px;width:80%;max-width:200px;height:8px;overflow:hidden}.analysis-progress-bar{background:var(--accent-color,#4a9eff);border-radius:4px;height:100%;transition:width .3s}.analysis-progress-text{opacity:.8;margin-top:.25rem;font-size:.75rem}.analysis-stop-button{color:var(--text-primary);background:var(--bg-tertiary,#80808033);border:1px solid var(--border-color,#8080804d);cursor:pointer;border-radius:4px;margin-top:.5rem;padding:.35rem .75rem;font-size:.75rem;font-weight:500;transition:all .2s}.analysis-stop-button:hover:not(:disabled){background:var(--bg-hover,#8080804d)}.analysis-stop-button:disabled{opacity:.6;cursor:not-allowed}.analysis-progress-inline{background:var(--bg-secondary);border-bottom:1px solid var(--border-color,#80808033);align-items:center;gap:8px;padding:4px 8px;font-size:.75rem;display:flex}.analysis-progress-label{color:var(--text-secondary);white-space:nowrap}.analysis-progress-bar-inline{background:var(--bg-tertiary,#80808033);border-radius:3px;flex:1;min-width:60px;height:6px;overflow:hidden}.analysis-stop-button-small{color:var(--text-secondary);border:1px solid var(--border-color,#8080804d);cursor:pointer;background:0 0;border-radius:3px;padding:2px 6px;font-size:.7rem;font-weight:500;line-height:1;transition:all .2s}.analysis-stop-button-small:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover,#80808033)}.analysis-stop-button-small:disabled{opacity:.5;cursor:not-allowed}.analysis-panel-toolbar{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color,#80808033);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;padding:.5rem;display:flex}.analysis-toolbar-spacer{flex:1;min-width:.5rem}.analysis-positions-count{color:var(--text-secondary);background-color:var(--bg-tertiary,#8080801a);white-space:nowrap;cursor:default;border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.analysis-action-button{border:1px solid var(--border-color,#8080804d);background-color:var(--bg-primary);min-width:32px;height:32px;color:var(--text-primary);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:.4rem;transition:all .2s;display:flex}.analysis-action-button:hover:not(:disabled){background-color:var(--bg-hover,#80808033)}.analysis-action-button:disabled{opacity:.5;cursor:not-allowed}.analysis-action-button.active{background-color:var(--accent-color,#4a9eff);color:#fff;border-color:var(--accent-color,#4a9eff)}.analysis-action-button.analyzing{background-color:var(--warning,#f59e0b);color:#fff;border-color:var(--warning,#f59e0b);animation:1.5s ease-in-out infinite pulse-analyzing}.analysis-topmoves-button.active,.analysis-heatmap-button.active{color:var(--accent-color,#4a9eff)!important;border-color:var(--accent-color,#4a9eff)!important;box-shadow:none!important;background-color:#0000!important}.analysis-topmoves-button.active:hover,.analysis-heatmap-button.active:hover{background-color:var(--bg-hover,#8080801a)!important}.analysis-status-bar{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color,#80808033);color:var(--text-secondary);align-items:center;gap:.5rem;padding:.5rem;font-size:.75rem;display:flex}.analysis-spinner{color:var(--accent-color,#4a9eff);animation:1s linear infinite spin}.collapsible-panel{background:var(--background);border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.panel-header{border-bottom:1px solid var(--border);background:var(--background);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:background .2s;display:flex}.panel-header:hover{background:var(--muted)}.panel-header-left{flex:1;align-items:center;gap:.5rem;display:flex}.panel-collapse-icon{color:var(--muted-foreground);justify-content:center;align-items:center;transition:transform .2s;display:flex}.panel-title{color:var(--foreground);text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.9rem;font-weight:600}.panel-header-actions{gap:.5rem;display:flex}.panel-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.collapsible-panel:not(.collapsed){flex:1;min-height:0;overflow:hidden}.collapsible-panel.collapsed{flex-shrink:0}.collapsible-panel.collapsed .panel-header{border-bottom:none}.status-bar{background-color:var(--panel-bg,#f5f5f5);border-top:1px solid var(--border-color,#e0e0e0);z-index:5;justify-content:space-between;align-items:center;gap:16px;min-height:28px;padding:6px 12px;display:flex;position:relative;bottom:0;left:0;right:0}@media (max-width:1440px){.status-bar{display:none}}.status-bar-section{align-items:center;gap:8px;display:flex}.status-bar-left{flex:none;min-width:100px}.status-bar-right{flex:none;margin-left:auto}.status-bar-icon{color:var(--primary-color,#2196f3);flex-shrink:0}.status-bar-text{color:var(--text-color,#333);font-size:12px;font-weight:500}.status-bar-empty{color:var(--text-muted,#999);font-style:italic}.status-bar-pattern-toggle{cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:4px 6px;transition:all .2s;display:flex}.status-bar-pattern-toggle.enabled{color:var(--accent,#3b82f6);opacity:1}.status-bar-pattern-toggle.disabled{color:var(--text-muted,#999);opacity:.5}.status-bar-pattern-toggle:hover{background-color:var(--hover-bg,#0000000d);opacity:1}.status-bar-pattern-toggle:active{background-color:var(--active-bg,#0000001a);transform:scale(.95)}.status-bar-link{color:var(--text-muted,#666);font-size:11px;text-decoration:none;transition:color .2s}.status-bar-link:hover{color:var(--primary-color,#2196f3);text-decoration:underline}.status-bar-version{color:var(--text-muted,#666);align-items:center;gap:4px;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:11px;display:flex}.status-bar-date{color:var(--text-muted,#666)}.status-bar-report-button{color:var(--text-muted,#666);background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;text-decoration:none;transition:all .2s;display:flex}.status-bar-report-button:hover{color:var(--primary-color,#2196f3);background-color:var(--hover-bg,#2196f314);border-color:var(--primary-color,#2196f3)}.status-bar-report-button:active{background-color:var(--active-bg,#2196f326);transform:scale(.98)}.status-bar-copy-btn{border:1px solid var(--border-color,#ddd);cursor:pointer;color:var(--text-color,#333);background:0 0;border-radius:4px;justify-content:center;align-items:center;min-width:24px;height:20px;padding:2px 6px;font-size:12px;transition:all .2s;display:flex}.status-bar-copy-btn:hover{background-color:var(--hover-bg,#e8e8e8);border-color:var(--primary-color,#2196f3)}.status-bar-copy-btn:active{transform:scale(.95)}[data-theme=dark] .status-bar{background-color:var(--panel-bg,#1e1e1e);border-top-color:var(--border-color,#333)}[data-theme=dark] .status-bar-text{color:var(--text-color,#ccc)}[data-theme=dark] .status-bar-empty{color:var(--text-muted,#666)}[data-theme=dark] .status-bar-link{color:var(--text-muted,#888)}[data-theme=dark] .status-bar-link:hover{color:var(--primary-color,#64b5f6)}[data-theme=dark] .status-bar-version{color:var(--text-muted,#888)}[data-theme=dark] .status-bar-date{color:var(--text-muted,#666)}[data-theme=dark] .status-bar-copy-btn{border-color:var(--border-color,#444);color:var(--text-color,#ccc)}[data-theme=dark] .status-bar-copy-btn:hover{background-color:var(--hover-bg,#2a2a2a);border-color:var(--primary-color,#64b5f6)}[data-theme=dark] .status-bar-pattern-toggle.enabled{color:var(--accent,#60a5fa)}[data-theme=dark] .status-bar-pattern-toggle.disabled{color:var(--text-muted,#666)}[data-theme=dark] .status-bar-pattern-toggle:hover{background-color:var(--hover-bg,#ffffff0d)}.library-panel{background:var(--bg-secondary,#1a1a1a);border-right:1px solid var(--border-color,#333);flex-direction:column;min-width:180px;height:100%;display:flex;overflow:hidden}.library-header{border-bottom:1px solid var(--border-color,#333);background:var(--bg-tertiary,#252525);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.library-title{color:var(--text-primary,#fff);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.library-actions{gap:4px;display:flex}.library-btn{width:28px;height:28px;color:var(--text-secondary,#999);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.library-btn:hover{background:var(--bg-hover,#333);color:var(--text-primary,#fff)}.library-btn:active{transform:scale(.95)}.library-btn:disabled{opacity:.4;cursor:not-allowed}.library-btn:disabled:hover{color:var(--text-secondary,#999);background:0 0}.library-btn.danger:hover:not(:disabled){color:#ef4444;background:#ef444433}.library-content{flex-direction:column;flex:1;min-height:0;padding:8px;display:flex;overflow:hidden}.library-empty{text-align:center;height:100%;color:var(--text-secondary,#999);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.library-empty-icon{opacity:.5;margin-bottom:16px;font-size:48px}.library-empty-text{margin-bottom:8px;font-size:14px}.library-empty-hint{opacity:.7;font-size:12px}.library-stats{border-top:1px solid var(--border-color,#333);color:var(--text-secondary,#999);background:var(--bg-tertiary,#252525);padding:8px 12px;font-size:11px}.library-selection-bar{border-top:1px solid var(--border-color,#333);color:var(--accent-color,#3b82f6);background:#3b82f626;justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;display:flex}.library-selection-count{font-weight:500}.library-selection-actions{gap:2px;display:flex}.library-selection-actions .library-btn{width:24px;height:24px}.library-loading{height:100%;color:var(--text-secondary,#999);justify-content:center;align-items:center;display:flex}.library-error{color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;margin:8px;padding:16px;font-size:13px}.library-tree{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.library-tree [role=tree]{flex:1;overflow:hidden!important}.library-tree-node{cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;color:var(--text-primary,#fff);border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;transition:background .1s;display:flex}.library-tree-node:hover{background:var(--bg-hover,#333)}.library-tree-node.selected{background:#3b82f626}.library-tree-node.selected:hover{background:#3b82f640}.library-tree-node.loaded{background:#22c55e1f;position:relative}.library-tree-node.loaded:hover{background:#22c55e33}.library-tree-node.loaded:before{content:"▶";color:var(--success-color,#22c55e);z-index:1;font-size:8px;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.library-tree-node.loaded .library-tree-node-name{font-weight:600}.library-tree-node.loaded.selected{background:#22c55e2e}.library-tree-node.loaded.selected:hover{background:#22c55e40}.library-tree-node.has-loaded{position:relative}.library-tree-node.has-loaded:after{content:"";background:var(--success-color,#22c55e);opacity:.7;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.library-tree-node.drop-target{outline:2px dashed var(--accent-color,#3b82f6);outline-offset:-2px;background:#3b82f64d}.library-tree-node-icon{width:16px;height:16px;color:var(--text-secondary,#999);flex-shrink:0;justify-content:center;align-items:center;display:flex}.library-tree-node.loaded .library-tree-node-icon{color:var(--success-color,#22c55e)}.library-tree-node.has-loaded .library-tree-node-icon{color:var(--success-color,#22c55e);opacity:.7}.library-tree-node-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.library-dirty-indicator{color:var(--warning,#f59e0b);margin-right:.25rem;font-size:1rem}.library-tree-node-input{border:1px solid var(--accent-color,#3b82f6);background:var(--bg-primary,#0a0a0a);color:var(--text-primary,#fff);border-radius:3px;outline:none;flex:1;padding:2px 4px;font-size:13px}.library-tree-node-arrow{width:16px;height:16px;color:var(--text-secondary,#999);justify-content:center;align-items:center;transition:transform .15s;display:flex}.library-tree-node-arrow.expanded{transform:rotate(90deg)}.library-drag-preview{background:var(--bg-secondary,#1a1a1a);border:1px solid var(--accent-color,#3b82f6);color:var(--text-primary,#fff);white-space:nowrap;border-radius:6px;padding:6px 12px;font-size:13px;box-shadow:0 4px 12px #0000004d}.library-tree-node-meta{color:var(--text-secondary,#999);opacity:.7;white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:8px;font-size:11px}.library-context-menu{z-index:1000;background:var(--bg-secondary,#1a1a1a);border:1px solid var(--border-color,#333);border-radius:6px;min-width:160px;padding:4px;position:fixed;box-shadow:0 4px 12px #00000080}.library-context-menu-header{color:var(--text-secondary,#999);text-transform:uppercase;letter-spacing:.5px;padding:8px 12px;font-size:12px;font-weight:600}.library-context-menu-item{color:var(--text-primary,#fff);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.library-context-menu-item:hover{background:var(--bg-hover,#333)}.library-context-menu-item.danger{color:#ef4444}.library-context-menu-item.danger:hover{background:#ef444433}.library-context-menu-separator{background:var(--border-color,#333);height:1px;margin:4px 0}.library-context-menu-item-icon{opacity:.7;justify-content:center;align-items:center;width:16px;display:flex}.library-drop-zone{border:2px dashed var(--accent-color,#3b82f6);z-index:100;pointer-events:none;background:#3b82f61a;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.library-drop-zone-text{color:var(--accent-color,#3b82f6);font-size:14px;font-weight:500}.library-dialog-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.library-dialog{background:var(--bg-secondary,#1a1a1a);border:1px solid var(--border-color,#333);border-radius:8px;min-width:320px;padding:20px;box-shadow:0 8px 32px #00000080}.library-dialog-title{color:var(--text-primary,#fff);margin-bottom:16px;font-size:16px;font-weight:600}.library-dialog-input{border:1px solid var(--border-color,#333);background:var(--bg-primary,#0a0a0a);width:100%;color:var(--text-primary,#fff);border-radius:6px;outline:none;margin-bottom:16px;padding:8px 12px;font-size:14px}.library-dialog-input:focus{border-color:var(--accent-color,#3b82f6)}.library-dialog-buttons{justify-content:flex-end;gap:8px;display:flex}.library-dialog-btn{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:14px;transition:all .15s}.library-dialog-btn.primary{background:var(--accent-color,#3b82f6);color:#fff}.library-dialog-btn.primary:hover{background:var(--accent-hover,#2563eb)}.library-dialog-btn.secondary{background:var(--bg-tertiary,#252525);color:var(--text-primary,#fff)}.library-dialog-btn.secondary:hover{background:var(--bg-hover,#333)}.library-dialog-btn.danger{color:#fff;background:#ef4444}.library-dialog-btn.danger:hover{background:#dc2626}.library-dialog-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.library-dialog-header .library-dialog-title{margin-bottom:0}.library-dialog-icon{color:#ef4444;align-items:center;display:flex}.library-dialog-message{color:var(--text-secondary,#999);margin-bottom:16px;font-size:14px;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}:root{--breakpoint-mobile:768px;--breakpoint-tablet:1024px;--touch-target-min:44px;--mobile-nav-height:56px;--mobile-nav-height-landscape:48px;--mobile-header-height:48px;--bg-primary:#1e1e1e;--bg-secondary:#252526;--bg-tertiary:#2d2d30;--bg-hover:#2a2d2e;--bg-active:#37373d;--border-color:#3e3e42;--divider-color:#454545;--text-primary:#ccc;--text-secondary:#9d9d9d;--text-disabled:#656565;--accent-primary:#007acc;--accent-hover:#1c8ad6;--accent-active:#0062a3;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 6px #00000080;--shadow-lg:0 10px 15px #0009;--transition-fast:.15s ease;--transition-normal:.3s ease}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f3f3f3;--bg-tertiary:#e8e8e8;--bg-hover:#e4e6f1;--bg-active:#d7dae0;--border-color:#d4d4d4;--divider-color:#ccc;--text-primary:#333;--text-secondary:#616161;--text-disabled:#a0a0a0;--accent-primary:#0078d4;--accent-hover:#106ebe;--accent-active:#005a9e;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 6px #00000026;--shadow-lg:0 10px 15px #0003}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color var(--transition-normal),color var(--transition-normal);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--bg-active)}.app{width:100vw;height:100vh;flex-direction:column;height:100dvh;display:flex}.app-main{flex:1;overflow:hidden}html,body{overscroll-behavior:none}.no-select{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@media (max-width:767px){button,.btn,[role=button]{min-height:var(--touch-target-min);min-width:var(--touch-target-min)}button,input,select,textarea{touch-action:manipulation}::-webkit-scrollbar{width:4px;height:4px}}@media (min-width:768px) and (max-width:1024px){button,.btn,[role=button]{min-width:40px;min-height:40px}}.app-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:50;justify-content:space-between;align-items:center;gap:1rem;height:48px;padding:0 1rem;display:flex;position:relative}.header-file-controls{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:.375rem;display:flex}.header-btn-primary{color:var(--text-primary);cursor:pointer;white-space:nowrap;background-color:#0000;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:.375rem;height:32px;padding:.375rem .5rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.header-btn-primary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.header-btn-primary:disabled{opacity:.5;cursor:not-allowed}.header-btn-primary:disabled:hover{background-color:#0000}.header-secondary-actions{border-left:1px solid var(--border-color);align-items:center;gap:.25rem;margin-left:.5rem;padding-left:.5rem;display:flex}.header-btn-secondary{color:var(--text-primary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:.375rem;height:32px;padding:.375rem .5rem;font-size:.875rem;transition:all .2s;display:flex}.header-btn-secondary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.header-btn-secondary:active{background-color:var(--bg-active,#e5e5e5);transform:translateY(1px)}.header-filename-input{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--accent-color);border-radius:4px;min-width:150px;height:32px;padding:.25rem .5rem;font-size:.9rem;font-weight:600}.header-filename{color:var(--text-primary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:center;gap:.25rem;max-width:600px;height:32px;margin-left:.5rem;padding:.25rem .5rem;font-weight:600;transition:background-color .2s;display:flex;overflow:hidden}.header-filename:hover{background-color:var(--bg-tertiary)}.header-dirty-indicator{color:var(--warning,#f59e0b);font-size:1.2rem;line-height:0}.header-toggles{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.header-toggles button,.header-toggles a{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .2s;display:flex}.header-toggles button:hover,.header-toggles a:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.panel-toggle.active{background-color:var(--bg-tertiary);color:var(--accent-color)}.fullscreen-toggle,.theme-toggle,.sound-toggle{margin-left:.25rem}.header-more-menu-container{display:none;position:relative}.header-more-menu{background-color:var(--bg-primary);border:1px solid var(--border-color);z-index:100;border-radius:4px;flex-direction:column;gap:.25rem;min-width:160px;padding:.5rem;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.header-more-menu button{width:100%;justify-content:flex-start!important}.quick-new-button{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:.375rem;width:32px;height:32px;padding:.375rem .5rem;font-size:.875rem;transition:all .2s;display:flex}.quick-new-button:hover{background-color:var(--bg-tertiary);color:var(--accent-color)}.header-mobile-menu-btn{display:none!important}@media (max-width:1024px){.btn-text{display:none}.header-btn-primary{padding:.375rem}.header-filename{max-width:120px}.app-header{gap:.5rem;padding:0 .5rem}.header-desktop-only{display:none!important}.header-mobile-menu-btn{padding:.5rem!important;display:flex!important}.header-secondary-actions,.header-toggles,.header-more-menu-container{display:none}.header-filename{flex:1;min-width:0;max-width:none}.header-file-controls{flex:1;overflow:hidden}.header-mobile-menu-btn{color:var(--text-primary)!important;background:0 0!important;border:none!important}}:root{--shudan-board-border-width:.15em;--shudan-board-border-color:#ca933a;--shudan-board-background-color:#f1b458;--shudan-board-foreground-color:#5e2e0c;--shudan-black-background-color:#222;--shudan-black-foreground-color:#eee;--shudan-white-background-color:#eee;--shudan-white-foreground-color:#222;--shudan-coord-color:#5e2e0ccc}.shudan-goban{background:var(--shudan-board-background-color);border:var(--shudan-board-border-width)solid var(--shudan-board-border-color);color:var(--shudan-board-foreground-color);-webkit-user-select:none;user-select:none;background-size:cover;padding:.25em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative}.shudan-goban:after{content:"";top:calc(-1*var(--shudan-board-border-width));left:calc(-1*var(--shudan-board-border-width));bottom:calc(-1*var(--shudan-board-border-width));right:calc(-1*var(--shudan-board-border-width));pointer-events:none;z-index:3;background:linear-gradient(#eadcc01a,#0000),linear-gradient(#0000,#170a020d);position:absolute}.shudan-grid{pointer-events:none}.shudan-gridline,.shudan-hoshi{fill:var(--shudan-board-foreground-color)}.shudan-vertex{box-sizing:border-box;z-index:1;transition:opacity .1s;position:relative}.shudan-vertex:hover{opacity:.95}.shudan-stone{box-sizing:border-box;pointer-events:none;background-repeat:no-repeat;background-size:100% 100%}.shudan-stone_black{filter:drop-shadow(0 .12em .25em #0009);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MyIgaGVpZ2h0PSI0MyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJiIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNjM2MzYzIiBzdG9wLW9wYWNpdHk9Ii40Ii8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzYzNjM2MyIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJhIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMGIwYjBiIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ0MzQzMiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9IjAiIHgyPSIwIiB5MT0iNDMiIHkyPSIwIiB4bGluazpocmVmPSIjYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiLz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZCIgeDE9IjAiIHgyPSIwIiB5MT0iMi4zOCIgeTI9IjE5LjI3IiB4bGluazpocmVmPSIjYiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiLz4KICA8L2RlZnM+CiAgPGc+CiAgICA8Y2lyY2xlIGN4PSIyMS41IiBjeT0iMjEuNSIgcj0iMjAuNSIgZmlsbD0idXJsKCNjKSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDxjaXJjbGUgY3g9IjIxLjUiIGN5PSIyMS41IiByPSIxOC41IiBmaWxsPSJ1cmwoI2QpIiAvPgogIDwvZz4KPC9zdmc+Cg==)}.shudan-stone_white{filter:drop-shadow(0 .12em .25em #0006);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MyIgaGVpZ2h0PSI0MyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJiIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii45Ii8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJhIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRThFRkZGIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9IjAiIHgyPSIwIiB5MT0iNDMiIHkyPSIwIiB4bGluazpocmVmPSIjYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImQiIHgxPSIwIiB4Mj0iMCIgeTE9IjQwLjY1IiB5Mj0iMzAuNjUiIHhsaW5rOmhyZWY9IiNiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIvPgogIDwvZGVmcz4KICA8Zz4KICAgIDxjaXJjbGUgY3g9IjIxLjUiIGN5PSIyMS41IiByPSIyMC41IiBmaWxsPSJ1cmwoI2MpIiBzdHJva2U9IiNkOGQ4ZDgiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgPGNpcmNsZSBjeD0iMjEuNSIgY3k9IjIxLjUiIHI9IjE4LjUiIGZpbGw9InVybCgjZCkiIC8+CiAgPC9nPgo8L3N2Zz4K)}.shudan-coord-x,.shudan-coord-y{color:var(--shudan-coord-color);font-size:.6em;font-weight:500}.shudan-vertex:not(.shudan-sign_0).shudan-shift_1 .shudan-stone{transform:translate(-50%,-50%)translate(-.1em)}.shudan-vertex:not(.shudan-sign_0).shudan-shift_2 .shudan-stone{transform:translate(-50%,-50%)translateY(-.1em)}.shudan-vertex:not(.shudan-sign_0).shudan-shift_3 .shudan-stone{transform:translate(-50%,-50%)translate(.1em)}.shudan-vertex:not(.shudan-sign_0).shudan-shift_4 .shudan-stone{transform:translate(-50%,-50%)translateY(.1em)}.shudan-vertex:not(.shudan-sign_0).shudan-shift_5 .shudan-stone{transform:translate(-50%,-50%)translate(-.06em,-.06em)}.shudan-vertex:not(.shudan-sign_0).shudan-shift_6 .shudan-stone{transform:translate(-50%,-50%)translate(.06em,-.06em)}.shudan-vertex:not(.shudan-sign_0).shudan-shift_7 .shudan-stone{transform:translate(-50%,-50%)translate(.06em,.06em)}.shudan-vertex:not(.shudan-sign_0).shudan-shift_8 .shudan-stone{transform:translate(-50%,-50%)translate(-.06em,.06em)}.shudan-last-move-marker{pointer-events:none;z-index:10;opacity:.9}.shudan-next-move-marker{pointer-events:none;z-index:10;opacity:.7}.shudan-next-move-preview{pointer-events:none;z-index:10}.shudan-ghost-stone{pointer-events:none;z-index:5}.shudan-sign_1 .shudan-ghost-stone{color:#000}.shudan-sign_-1 .shudan-ghost-stone{color:#fff}.shudan-sign_0 .shudan-ghost-stone{color:#000}.shudan-goban{background-image:url(/kaya/static/image/board.98f617e1.png)}