*{margin:0;padding:0;box-sizing:border-box}body{font-family:Consolas,Monaco,monospace;background-color:#1e1e1e;color:#fff;height:100vh;overflow:hidden}#toolbar{height:40px;background-color:#2c2c2c;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:13px;border-bottom:2px solid #4a90e2}.toolbar-left,.toolbar-center,.toolbar-right{display:flex;align-items:center;gap:8px}.app-title{font-weight:700;color:#4a90e2;font-size:16px}.toolbar-btn{background-color:#444;color:#ccc;border:1px solid #666;padding:6px 12px;margin:0 3px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.toolbar-btn:hover{background-color:#555;color:#fff}.toolbar-btn.active{background-color:#4a90e2;color:#fff;border-color:#4a90e2}#workspace{height:calc(100vh - 40px);display:flex;position:relative}.window{background-color:#2d2d2d;border:1px solid #555;position:relative;display:flex;flex-direction:column;min-width:200px;min-height:150px;margin:0;box-sizing:border-box}.window.focused{border-color:#4a90e2}.window-title-bar{background-color:#444;height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:12px;border-bottom:1px solid #555}.window-buttons{display:flex;gap:3px}.window-switch{background-color:#4a90e2;color:#fff;border:none;width:20px;height:20px;border-radius:3px;cursor:pointer;font-size:12px}.window-switch:hover{background-color:#357abd}.window-close{background-color:#e74c3c;color:#fff;border:none;width:20px;height:20px;border-radius:3px;cursor:pointer;font-size:12px}.window-close:hover{background-color:#c0392b}.switch-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:1000}.switch-dialog{background-color:#2d2d2d;border:2px solid #4a90e2;border-radius:8px;padding:20px;min-width:300px}.switch-dialog h3{color:#4a90e2;margin-bottom:15px;text-align:center}.switch-options{display:flex;flex-direction:column;gap:8px}.switch-option{background-color:#444;color:#fff;border:1px solid #666;padding:10px;border-radius:4px;cursor:pointer;transition:background-color .2s}.switch-option:hover{background-color:#555}.switch-cancel{background-color:#666;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;margin-top:10px;width:100%}.switch-cancel:hover{background-color:#777}.window-content{flex:1;padding:15px;overflow:auto}.container{display:flex;width:100%;height:100%;gap:0;margin:0;padding:0}.container.horizontal{flex-direction:row}.container.vertical{flex-direction:column}.welcome-message{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;text-align:center}.welcome-message h2{margin-bottom:20px;color:#4a90e2}.welcome-message p{margin:5px 0;color:#ccc}kbd{background-color:#444;border:1px solid #666;border-radius:3px;padding:2px 5px;font-family:monospace;font-size:11px}.terminal{background-color:#000;color:#0f0;font-family:Courier New,monospace;padding:10px;height:100%;overflow-y:auto}.terminal-input{background:transparent;border:none;color:#0f0;font-family:Courier New,monospace;width:100%;outline:none}.browser{background-color:#fff;color:#333;padding:10px;height:100%;overflow-y:auto}.text-editor{background-color:#2d2d2d;color:#fff;font-family:Courier New,monospace;padding:10px;height:100%;overflow-y:auto}.resize-handle{position:absolute;background-color:#555;z-index:1000}.resize-handle.horizontal{width:4px;height:100%;right:-2px;top:0;cursor:col-resize}.resize-handle.vertical{width:100%;height:4px;bottom:-2px;left:0;cursor:row-resize}.resize-handle:hover{background-color:#4a90e2}.chess-board-container{background-color:#2d2d2d;padding:20px;display:flex;justify-content:center;align-items:center;height:100%;width:100%}.chess-board-image{width:100%;height:100%;object-fit:contain}.square{display:flex;justify-content:center;align-items:center;font-size:32px;cursor:pointer;position:relative}.square.light{background-color:#f0d9b5}.square.dark{background-color:#b58863}.square.selected{background-color:#ff9!important}.square.highlight{background-color:#90ee90!important}.chess-notation{background-color:#2d2d2d;color:#fff;padding:15px;height:100%;display:flex;flex-direction:column;font-family:Courier New,monospace}.notation-header{color:#4a90e2;font-weight:700;margin-bottom:15px;padding-bottom:5px;border-bottom:1px solid #555}.notation-actions{display:flex;gap:8px;justify-content:center;margin-top:10px;padding:10px 0;flex-shrink:0;border-top:1px solid #555}.notation-action-btn{background-color:#3a3a3a;color:#fff;border:1px solid #555;border-radius:6px;padding:10px 16px;cursor:pointer;font-size:18px;font-weight:600;transition:all .2s;min-width:50px}.notation-action-btn:hover{background-color:#4a90e2;border-color:#5fa3e6;transform:translateY(-2px)}.notation-action-btn:active{transform:translateY(0)}.move-list{line-height:1.8;flex:1;overflow-y:auto}.move-line{margin-bottom:2px;padding:2px 0;border-bottom:1px solid #2a2a2a}.move-line:last-child{border-bottom:none}.move-line.variation{color:#aaa}.move-item{padding:1px 2px;margin-right:2px;border-radius:4px;background-color:transparent;font-size:14px;cursor:pointer;transition:background-color .2s}.move-item:hover{background-color:#444}.move-item.current-move{background-color:#4a90e2;color:#fff;border:1px solid #5fa3e6}.move-item.main-line{font-weight:600}.move-item.paren{color:#999;cursor:default}.move-item.paren:hover{background-color:transparent}.chess-database{background-color:#2d2d2d;color:#fff;padding:15px;height:100%;overflow-y:auto}.database-split-container{display:flex;flex-direction:row;height:100%;width:100%}.database-analysis{border-right:1px solid #555}.database-resize-handle{width:4px;background-color:#555;cursor:col-resize;flex-shrink:0;transition:background-color .2s}.database-resize-handle:hover{background-color:#4a90e2}.database-header{color:#4a90e2;font-weight:700;margin-bottom:15px;padding:10px 15px;border-bottom:1px solid #555;background-color:#333;flex-shrink:0}.database-section{overflow-y:auto;background-color:#2d2d2d;display:flex;flex-direction:column}.database-moves-list{flex:1;overflow-y:auto;min-height:0}.database-games-list{flex:1;overflow-y:auto;min-height:0;padding:16px}.game-entry{padding:8px;margin-bottom:5px;border:1px solid #444;border-radius:4px;cursor:pointer;transition:background-color .2s}.game-entry:hover{background-color:#333}.game-info{display:flex;justify-content:space-between;font-size:12px;color:#ccc;margin-top:3px}.chess-engine{background-color:#1a1a1a;color:#0f0;padding:15px;height:100%;overflow-y:auto;font-family:Courier New,monospace;font-size:12px}.engine-header{color:#4a90e2;font-weight:700;margin-bottom:15px;padding-bottom:5px;border-bottom:1px solid #333}.engine-line{margin-bottom:8px;padding:4px;border-radius:3px}.engine-line.best{background-color:#4a90e233}.engine-eval{color:#ff0;font-weight:700}.engine-pv{color:#0f0}.switch-popup{background-color:#2d2d2d;border:1px solid #4a90e2;border-radius:4px;box-shadow:0 2px 10px #0000004d;min-width:150px}.switch-popup-option{padding:8px 12px;cursor:pointer;color:#fff;font-size:12px;border-bottom:1px solid #444;transition:background-color .2s}.switch-popup-option:last-child{border-bottom:none}.switch-popup-option:hover{background-color:#4a90e2}.resize-handle-between:hover,.resize-handle-right:hover,.horizontal-resize-handle:hover{background-color:#4a90e2!important}.horizontal-resize-handle,.resize-handle-between,.resize-handle-right{transition:background-color .2s ease}.promotion-popup{position:absolute;background-color:#2d2d2d;border:2px solid #4a90e2;border-radius:8px;padding:8px;box-shadow:0 4px 12px #00000080;z-index:1000;transform:translate(-50%,-50%)}.promotion-pieces{display:flex;gap:4px}.promotion-piece{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:#444;border:1px solid #666;border-radius:4px;cursor:pointer;font-size:24px;color:#fff;transition:all .2s;-webkit-user-select:none;user-select:none}.promotion-piece:hover{background-color:#4a90e2;transform:scale(1.1);border-color:#4a90e2}.modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000}.modal-content{background-color:#2d2d2d;border:1px solid #4a90e2;border-radius:8px;padding:20px;min-width:400px;max-width:600px;max-height:80vh;overflow-y:auto;color:#fff}.modal-content h3{margin:0 0 20px;color:#4a90e2;font-size:18px}.modal-field{margin-bottom:15px}.modal-field label{display:block;margin-bottom:5px;color:#ccc;font-size:13px}.modal-field input{width:100%;padding:8px;background-color:#1a1a1a;border:1px solid #555;border-radius:4px;color:#fff;font-size:13px}.modal-field input:focus{outline:none;border-color:#4a90e2}.modal-field input:disabled{opacity:.6;cursor:not-allowed}.modal-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal-buttons button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .2s}.modal-buttons button:first-child{background-color:#4a90e2;color:#fff}.modal-buttons button:first-child:hover:not(:disabled){background-color:#357abd}.modal-buttons button:last-child{background-color:#555;color:#fff}.modal-buttons button:last-child:hover:not(:disabled){background-color:#666}.modal-buttons button:disabled{opacity:.6;cursor:not-allowed}.saved-games-list{max-height:300px;overflow-y:auto;border:1px solid #555;border-radius:4px;background-color:#1a1a1a;margin-bottom:15px}.saved-games-list p{padding:20px;text-align:center;color:#888;font-style:italic}.saved-game-item{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;border-bottom:1px solid #333;transition:background-color .2s}.saved-game-item:last-child{border-bottom:none}.saved-game-item:hover{background-color:#333}.game-info{flex:1}.game-name{font-weight:700;color:#fff;margin-bottom:4px}.game-date{font-size:11px;color:#888}.saved-game-item button{padding:6px 12px;background-color:#4a90e2;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s}.saved-game-item button:hover:not(:disabled){background-color:#357abd}.saved-game-item button:disabled{opacity:.6;cursor:not-allowed}.move-container{display:inline-block;position:relative;margin-bottom:4px}.move-comment{display:inline-block;font-size:12px;font-style:italic;margin-left:4px;margin-right:4px}.move-line:not(.variation) .move-comment{color:#4a90e2}.move-line.variation .move-comment{color:#4ade80}.comment-input{background-color:#3a3a3a;color:#fff;border:1px solid #4a90e2;border-radius:3px;padding:4px 6px;font-size:12px;font-family:inherit;margin-left:8px;min-width:120px;outline:none}.nag-symbols{font-weight:700;color:orange;margin-left:2px;font-size:.9em}.nag-btn{background-color:#3a3a3a;color:orange;border:1px solid #555;border-radius:3px;padding:4px 8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;min-width:24px;text-align:center}.nag-btn:hover{background-color:#4a4a4a;border-color:orange;transform:translateY(-1px)}.nag-btn:active{transform:translateY(0);background-color:orange;color:#2d2d2d}.font-size-popup{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.font-size-popup-content{background-color:#2d2d2d;border:1px solid #555;border-radius:8px;padding:20px;min-width:300px;color:#fff}.font-size-popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.font-size-popup-header h3{margin:0;color:#4a90e2}.close-popup-btn{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:0;width:24px;height:24px}.close-popup-btn:hover{color:#fff}.font-size-input-group{margin-bottom:20px}.font-size-input-group label{display:block;margin-bottom:8px;color:#ccc;font-weight:600}#font-size-input{width:100%;padding:8px 12px;background-color:#3a3a3a;border:1px solid #555;border-radius:4px;color:#fff;font-size:14px}#font-size-input:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 5px #4a90e24d}.font-size-popup-actions{display:flex;gap:10px;justify-content:flex-end}.apply-font-btn,.cancel-font-btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.apply-font-btn{background-color:#4a90e2;color:#fff}.apply-font-btn:hover{background-color:#357abd}.cancel-font-btn{background-color:#666;color:#fff}.cancel-font-btn:hover{background-color:#777}.comment-popup{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.comment-popup-content{background-color:#2d2d2d;border:1px solid #555;border-radius:8px;padding:30px;min-width:600px;max-width:800px;color:#fff}.comment-popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.comment-popup-header h3{margin:0;color:#4a90e2}.comment-input-group{margin-bottom:20px}.comment-input-group label{display:block;margin-bottom:8px;color:#ccc;font-weight:600}#comment-text-input{width:100%;min-height:120px;padding:12px 16px;background-color:#3a3a3a;border:1px solid #555;border-radius:4px;color:#fff;font-size:14px;font-family:inherit;resize:vertical}#comment-text-input:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 5px #4a90e24d}.comment-popup-actions{display:flex;gap:10px;justify-content:flex-end}.apply-comment-btn,.cancel-comment-btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.apply-comment-btn{background-color:#4a90e2;color:#fff}.apply-comment-btn:hover{background-color:#357abd}.cancel-comment-btn{background-color:#666;color:#fff}.cancel-comment-btn:hover{background-color:#777}.comment-input:focus{border-color:#5fa3e6;box-shadow:0 0 5px #4fa3e64d}.context-menu{position:fixed;background-color:#2d2d2d;border:1px solid #555;border-radius:6px;box-shadow:0 4px 12px #0000004d;z-index:1000;display:none;min-width:160px}.context-menu-item{padding:0;border-bottom:1px solid #444;position:relative}.context-menu-item:last-child{border-bottom:none}.submenu{position:absolute;left:100%;top:0;background-color:#2d2d2d;border:1px solid #555;border-radius:6px;box-shadow:0 4px 12px #0000004d;min-width:120px;display:none;padding:8px;gap:4px;flex-direction:column}.font-size-btn{background-color:#444;color:#fff;border:1px solid #666;border-radius:3px;padding:6px 12px;font-size:12px;cursor:pointer;transition:all .2s;width:100%;text-align:center}.font-size-btn:hover{background-color:#555;border-color:#777}.font-size-btn.active{background-color:#4a90e2;border-color:#5fa3e6}.context-action-btn{background-color:#4a90e2;color:#fff;border:none;border-radius:4px;padding:12px 16px;width:100%;cursor:pointer;font-size:13px;transition:background-color .2s;text-align:left}.context-action-btn:hover{background-color:#357abd}.variation-popup{position:fixed;top:25%;right:25%;transform:translate(50%,-50%);background-color:#2d2d2d;border:2px solid #4a90e2;border-radius:8px;padding:15px;min-width:250px;max-width:400px;max-height:400px;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000080;z-index:9999}.variation-popup-header{font-size:14px;font-weight:600;color:#4a90e2;margin-bottom:10px;text-align:center}.variation-choices{display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1;margin-bottom:10px}.variation-choice-btn{background-color:#3a3a3a;color:#fff;border:1px solid #555;border-radius:6px;padding:12px 16px;cursor:pointer;font-size:15px;font-weight:500;text-align:left;transition:all .15s}.variation-choice-btn:hover{background-color:#4a4a4a;border-color:#4a90e2}.variation-choice-btn.selected{background-color:#4a90e2;border-color:#5fa3e6;transform:translate(3px)}.variation-popup-hint{font-size:11px;color:#888;text-align:center;padding-top:8px;border-top:1px solid #444}
