*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{width:100vw;height:100vh;overflow:hidden}button{font-family:inherit}input[type=range]{-webkit-appearance:none;appearance:none;height:6px;background:#ddd;border-radius:3px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#4caf50;border-radius:50%;cursor:pointer}input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#4caf50;border-radius:50%;cursor:pointer;border:none}.canvas-container{position:relative;width:100%;height:100%;border:4px solid #000;background:gray;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 0 15px #0006,inset 0 0 0 2px #333}.canvas-container.canvas-disabled{opacity:.6;cursor:not-allowed}.canvas-container.canvas-disabled:after{content:"";position:absolute;inset:0;background:#8080804d;pointer-events:none;z-index:1000}.canvas-container.canvas-disabled.not-started:before{content:"Press Start to begin";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;font-weight:700;color:#333;background:#ffffffe6;padding:20px 40px;border-radius:8px;box-shadow:0 4px 8px #0003;z-index:1001}.gapfill-indicator{position:absolute;top:10px;right:10px;padding:8px 16px;background:#ffffffe6;border:2px solid;border-radius:6px;font-weight:700;font-size:14px;z-index:10;pointer-events:none;box-shadow:0 2px 4px #0003}.main-canvas,.overlay-canvas{position:absolute;top:0;left:0;background:transparent}.main-canvas{z-index:1;background:transparent}.overlay-canvas{pointer-events:none;z-index:3;background:transparent}.cursor-canvas{position:absolute;top:0;left:0;pointer-events:none;z-index:100;background:transparent}.popup-minimap{position:absolute;width:320px;height:320px;border:2px solid #ff0000;background:#fff;box-shadow:0 4px 8px #0003;z-index:10;pointer-events:none;box-sizing:content-box}.canvas-container.minimap-active:not(.color-selection-mode) .main-canvas{cursor:none!important}.minimap-cancel-button{position:absolute;bottom:12px;left:12px;width:36px;height:36px;background:linear-gradient(135deg,#4fc3f7,#29b6f6);border:2px solid #ffffff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;pointer-events:auto;box-shadow:0 4px 8px #0000004d;transition:transform .2s,box-shadow .2s;z-index:4}.minimap-cancel-button:before{content:"✕";color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3)}.minimap-colorpicker-button{position:absolute;bottom:12px;right:12px;width:36px;height:36px;background:linear-gradient(135deg,#ff7043,#f4511e);border:2px solid #ffffff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;pointer-events:auto;box-shadow:0 4px 8px #0000004d;transition:transform .2s,box-shadow .2s;z-index:4}.minimap-colorpicker-button:before{content:"🎨";filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.minimap-color-confirm-button{position:absolute;bottom:12px;right:56px;width:36px;height:36px;background:linear-gradient(135deg,#4caf50,#45a049);border:2px solid #ffffff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;font-weight:700;color:#fff;transition:all .2s ease;box-shadow:0 2px 6px #0003;z-index:1001}.minimap-cancel-button:hover,.minimap-colorpicker-button:hover,.minimap-color-confirm-button:hover{transform:scale(1.1);box-shadow:0 6px 12px #0006}.canvas-container[data-z-pressed=true]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="10" r="7" fill="white" stroke="black" stroke-width="2"/><line x1="15.5" y1="15.5" x2="22" y2="22" stroke="black" stroke-width="3" stroke-linecap="round"/><line x1="7" y1="10" x2="13" y2="10" stroke="black" stroke-width="2"/><line x1="10" y1="7" x2="10" y2="13" stroke="black" stroke-width="2"/></svg>') 12 12,zoom-in!important}.canvas-container[data-space-pressed=true],.canvas-container[data-gapfill=false][data-tool=move]{cursor:grab!important}.canvas-container[data-gapfill=false][data-tool=move]:active{cursor:grabbing!important}.canvas-container[data-gapfill=false][data-tool=eyedropper],.canvas-container[data-gapfill=false][data-tool=colorpicker]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12"><circle cx="6" cy="6" r="3" fill="green" stroke="white" stroke-width="1"/></svg>') 6 6,auto!important}.canvas-container[data-gapfill=false][data-tool=zoom]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="10" r="7" fill="white" stroke="black" stroke-width="2"/><line x1="15.5" y1="15.5" x2="22" y2="22" stroke="black" stroke-width="3" stroke-linecap="round"/><line x1="7" y1="10" x2="13" y2="10" stroke="black" stroke-width="2"/><line x1="10" y1="7" x2="10" y2="13" stroke="black" stroke-width="2"/></svg>') 12 12,zoom-in!important}.canvas-container[data-gapfill=false][data-tool=fill]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12"><circle cx="6" cy="6" r="3" fill="green" stroke="white" stroke-width="1"/></svg>') 6 6,auto!important}.canvas-container[data-gapfill=false][data-tool=brush],.canvas-container[data-gapfill=false][data-tool=eraser]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12"><circle cx="6" cy="6" r="3" fill="green" stroke="white" stroke-width="1"/></svg>') 6 6,auto!important}.canvas-container[data-gapfill=false][data-tool=lasso]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12"><circle cx="6" cy="6" r="3" fill="green" stroke="white" stroke-width="1"/></svg>') 6 6,auto!important}.canvas-container[data-gapfill=true][data-gapfill-tool=move]{cursor:grab!important}.canvas-container[data-gapfill=true][data-gapfill-tool=zoom]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="10" r="7" fill="white" stroke="black" stroke-width="2"/><line x1="15.5" y1="15.5" x2="22" y2="22" stroke="black" stroke-width="3" stroke-linecap="round"/><line x1="7" y1="10" x2="13" y2="10" stroke="black" stroke-width="2"/><line x1="10" y1="7" x2="10" y2="13" stroke="black" stroke-width="2"/></svg>') 12 12,zoom-in!important}.canvas-container[data-gapfill=true][data-gapfill-tool=move]:active{cursor:grabbing!important}.canvas-container[data-gapfill=true][data-gapfill-tool=special]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12"><circle cx="6" cy="6" r="3" fill="green" stroke="white" stroke-width="1"/></svg>') 6 6,auto!important}.canvas-container[data-swipe-mode=true]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12"><circle cx="6" cy="6" r="3" fill="green" stroke="white" stroke-width="1"/></svg>') 6 6,auto!important}.fill-controls{position:absolute;top:10px;left:10px;background:#ffffffe6;padding:8px 12px;border-radius:4px;z-index:100;font-size:14px}.fill-controls label{display:flex;align-items:center;gap:8px;cursor:pointer}.fill-controls input[type=checkbox]{cursor:pointer}.color-picker-popup{position:fixed;background:#000000e6;color:#fff;padding:6px 10px;border-radius:6px;box-shadow:0 4px 12px #0000004d;z-index:2000;pointer-events:none;font-size:10px;font-family:monospace}.color-picker-popup-content{display:flex;align-items:center;gap:8px}.color-picker-preview{width:20px;height:20px;border-radius:3px;border:1px solid rgba(255,255,255,.3)}.color-picker-text{font-weight:700;text-transform:uppercase}.color-picker-canvas{position:absolute;width:280px;background:#fff;border:2px solid #333;border-radius:8px;box-shadow:0 8px 16px #0000004d;z-index:6;pointer-events:auto;padding:16px;box-sizing:border-box}.color-picker-header{font-size:16px;font-weight:700;margin-bottom:12px;text-align:center;color:#333}.color-picker-body{display:flex;align-items:center;gap:12px;margin-bottom:16px}.color-preview{width:60px;height:40px;border:2px solid #ccc;border-radius:4px}.color-value{font-family:monospace;font-size:14px;color:#333;font-weight:700}.color-picker-buttons{display:flex;gap:8px}.color-picker-confirm,.color-picker-cancel{flex:1;padding:10px 16px;border:none;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;transition:background-color .2s}.color-picker-confirm{background:#4caf50;color:#fff}.color-picker-confirm:hover{background:#45a049}.color-picker-cancel{background:#f44336;color:#fff}.color-picker-cancel:hover{background:#da190b}.toolbar{display:flex;align-items:center;gap:20px;padding:10px;background:#f8f8f8;border-bottom:2px solid #ddd}.tool-buttons{display:flex;gap:5px}.tool-button-wrapper{display:flex;flex-direction:column;align-items:center;gap:2px}.tool-shortcut{font-size:9px;color:#666;white-space:nowrap;margin-top:-2px}.tool-button{width:40px;height:40px;border:2px solid #ccc;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .2s}.tool-button:hover{background:#f0f0f0;border-color:#999}.tool-button.active{background:#4caf50;border-color:#45a049}.tool-button.disabled{opacity:.3;cursor:not-allowed;background:#e0e0e0;border-color:#ccc}.tool-button.disabled:hover{background:#e0e0e0;border-color:#ccc}.tool-settings{display:flex;align-items:center;gap:15px}.setting-group{display:flex;align-items:center;gap:5px}.setting-group label{font-size:14px;font-weight:500}.setting-group input[type=range]{width:100px}.setting-group input[type=color]{width:40px;height:30px;border:1px solid #ccc;cursor:pointer;position:relative}.color-controls{position:relative}input[type=color]::-webkit-color-swatch-wrapper{position:relative}.setting-group input[type=color]:focus{position:absolute;z-index:1000}.tool-separator{width:2px;height:40px;background:#ccc;margin:0 5px;display:flex;align-items:center;justify-content:center;color:#999;font-weight:700}.checkbox-label{display:flex;align-items:center;gap:5px;margin-left:10px;font-size:12px;cursor:pointer}.checkbox-label input[type=checkbox]{cursor:pointer}.switch-container{display:flex;flex-direction:row;align-items:center;gap:8px;background:#2c2c2c;border:2px solid #555;border-radius:8px;padding:8px 12px;box-shadow:0 2px 4px #0000001a}.switch-label{font-size:13px;font-weight:500;color:#fff;white-space:nowrap}.horizontal-switch{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:4px 0;transition:all .3s ease}.horizontal-switch:disabled{cursor:not-allowed;opacity:.5}.switch-track{position:relative;width:44px;height:24px;background:#ccc;border-radius:12px;transition:all .3s ease;border:2px solid #ddd}.horizontal-switch.active .switch-track{background:#28a745;border-color:#28a745}.switch-thumb{position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:2px;left:2px;transition:all .3s ease;box-shadow:0 1px 3px #0000004d}.horizontal-switch.active .switch-thumb{transform:translate(20px)}.switch-text{font-size:11px;font-weight:600;color:#ccc;min-width:24px}.horizontal-switch.active .switch-text{color:#4ade80}.setting-group{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.tool-settings.disabled{opacity:.5;pointer-events:none}.shortcut-hint{font-size:10px;color:#fff9;font-weight:400;margin-left:4px}.transparent-button{width:30px;height:30px;border:1px solid #ccc;background:linear-gradient(45deg,#f0f0f0 25%,transparent 25%,transparent 75%,#f0f0f0 75%),linear-gradient(45deg,#f0f0f0 25%,#fff 25% 75%,#f0f0f0 75%);background-size:8px 8px;background-position:0 0,4px 4px;cursor:pointer;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}.transparent-button:hover{border-color:#999}.transparent-button.active{border-color:#4caf50;border-width:2px}.color-controls{display:flex;align-items:center;gap:5px}.color-display{width:40px;height:30px;border:2px solid #ccc;border-radius:4px;cursor:pointer;transition:all .2s;position:relative}.color-display:hover{border-color:#999;transform:scale(1.05)}.color-display:active{transform:scale(.95)}.layer-panel{width:250px;background:#f8f8f8;border-left:2px solid #ddd;display:flex;flex-direction:column;height:100%}.layer-panel-header{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #ddd}.layer-panel-header h3{margin:0;font-size:16px}.add-layer-button{padding:5px 10px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px}.add-layer-button:hover{background:#45a049}.layer-list{flex:1;overflow-y:auto;padding:10px;background:linear-gradient(to bottom,#fafafa,#f5f5f5)}.layer-item{display:flex;align-items:center;padding:8px 8px 8px 16px;margin-bottom:5px;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s;position:relative;box-shadow:0 1px 3px #0000001a}.layer-item:hover{background:#f0f0f0}.layer-item.active{background:linear-gradient(135deg,#e3f2fd,#f0f8ff);border:2px solid #2196F3;box-shadow:0 2px 8px #2196f34d;transform:translate(2px)}.layer-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#2196f3;border-radius:2px 0 0 2px}.layer-visibility{background:none;border:none;cursor:pointer;font-size:16px;margin-right:8px;padding:0;width:24px}.layer-name{flex:1;font-size:14px;font-weight:500;color:#333}.layer-item.active .layer-name{color:#1976d2;font-weight:600}.layer-controls{display:flex;gap:4px}.layer-control{width:24px;height:24px;background:none;border:1px solid #ccc;border-radius:3px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.layer-control:hover:not(:disabled){background:#f0f0f0}.layer-control:disabled{opacity:.3;cursor:not-allowed}.layer-control.delete{font-size:14px}.layer-control.delete:hover:not(:disabled){background:#ffebee;border-color:#f44336}.gapfill-control{padding:15px;background:#fff9c4;border:2px solid #f9a825;border-radius:8px;margin:10px}.gapfill-toggle-container{display:flex;align-items:center;gap:15px;margin-bottom:15px}.gapfill-toggle-label{font-size:16px;font-weight:700;color:#333}.gapfill-toggle{position:relative;width:100px;height:40px;background:#ccc;border:none;border-radius:20px;cursor:pointer;transition:background .3s;display:flex;align-items:center;padding:0 10px}.gapfill-toggle.active{background:#ffc107}.gapfill-toggle.locked{opacity:.6;cursor:not-allowed}.gapfill-toggle:disabled{cursor:not-allowed}.toggle-slider{position:absolute;width:32px;height:32px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;transition:transform .3s;left:4px}.gapfill-toggle.active .toggle-slider{transform:translate(56px)}.toggle-text{position:absolute;right:10px;font-weight:700;color:#333;font-size:14px}.gapfill-toggle.active .toggle-text{right:auto;left:10px}.gapfill-settings{display:flex;flex-direction:column;gap:10px;overflow:hidden}.threshold-control,.swipe-size-control{display:flex;align-items:center;gap:8px}.threshold-control label,.swipe-size-control label{font-size:14px;font-weight:500;min-width:80px}.threshold-control input[type=range],.swipe-size-control input[type=range]{flex:1;min-width:80px}.threshold-control span,.swipe-size-control span{font-size:14px;min-width:45px;text-align:left;font-weight:700;color:#333}.apply-all-button{padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:700;cursor:pointer;transition:background .2s}.apply-all-button:hover:not(.disabled){background:#45a049}.apply-all-button.disabled,.apply-all-button:disabled{background:#ccc;color:#666;cursor:not-allowed;opacity:.6}.gapfill-tools{display:flex;align-items:center;gap:10px}.gapfill-tools label{font-size:14px;font-weight:500;margin-left:12px}.gapfill-tool-rows{display:flex;flex-direction:column;gap:5px}.gapfill-tool-buttons-row{display:flex;gap:5px}.gapfill-tool-button{width:50px;height:40px;border:2px solid #ccc;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .2s;border-radius:4px}.gapfill-tool-button.special{width:105px}.gapfill-tool-button:hover{background:#f0f0f0;border-color:#999}.gapfill-tool-button.active{background:#4caf50;border-color:#45a049}.gapfill-hint{font-size:12px;color:#666;font-style:italic}.highlight-color-control{display:flex;align-items:center;gap:5px}.highlight-color-control label{font-size:14px;font-weight:500}.highlight-color-control input[type=color]{width:40px;height:30px;border:1px solid #ccc;cursor:pointer;border-radius:3px}.reference-canvas-container{width:100%;margin-bottom:20px;border:2px solid #ddd;border-radius:8px;background:#f9f9f9}.reference-canvas-header{background:#4caf50;color:#fff;padding:8px 12px;font-weight:700;font-size:14px;border-radius:6px 6px 0 0;display:flex;flex-direction:column;align-items:center;gap:2px}.reference-title{font-size:14px;font-weight:700}.reference-hint,.zoom-hint{font-size:10px;color:#666;font-weight:400;font-style:italic;text-align:left;white-space:nowrap;display:inline-block}.zoom-controls{display:flex;justify-content:center;align-items:center;gap:16px;padding:8px 12px;background:#f0f0f0;border-top:1px solid #ddd}.zoom-hints{display:flex;flex-direction:column;gap:2px;align-items:flex-start;font-family:monospace;line-height:1.2}.zoom-button{background:#fff;border:1px solid #ccc;color:#333;padding:4px 8px;border-radius:3px;cursor:pointer;font-size:12px;transition:all .2s}.zoom-button:hover{background:#f0f0f0;border-color:#999}.reset-button{background:#4caf50;color:#fff;border-color:#4caf50;font-weight:700}.reset-button:hover{background:#45a049;border-color:#45a049}.zoom-level{font-size:12px;font-weight:700;min-width:35px;text-align:center;color:#555}.reference-canvas-wrapper{padding:10px;display:flex;justify-content:center;align-items:center;min-height:400px;background:#fff;border-radius:0 0 6px 6px;overflow:auto}.reference-canvas{border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0000001a;background:#fff;max-width:100%;max-height:600px}.reference-canvas:hover{border-color:#4caf50}.preset-selector{display:flex;align-items:center;margin-right:15px}.preset-dropdown{padding:8px 12px;border-radius:5px;border:1px solid #ddd;background-color:#fff;font-size:14px;cursor:pointer;min-width:120px;transition:all .3s ease}.preset-dropdown:hover{border-color:#999;background-color:#f9f9f9}.preset-dropdown:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}.preset-separator{color:#ccc;font-size:10px;text-align:center;pointer-events:none;background-color:#f5f5f5}.shortcut-settings-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.shortcut-settings-popup{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;width:90%;max-width:600px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.shortcut-settings-header{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#f8f9fa;border-bottom:1px solid #e9ecef}.shortcut-settings-header h3{margin:0;color:#333;font-size:18px}.close-button{background:none;border:none;font-size:18px;cursor:pointer;padding:5px;border-radius:3px;color:#666;transition:all .2s}.close-button:hover{background:#e9ecef;color:#333}.shortcut-settings-content{flex:1;overflow-y:auto;padding:20px}.shortcut-category{margin-bottom:25px}.shortcut-category h4{color:#495057;font-size:14px;font-weight:600;margin:0 0 10px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e9ecef;padding-bottom:5px}.shortcut-list{display:flex;flex-direction:column;gap:8px}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.shortcut-name{font-size:14px;color:#495057;flex:1}.shortcut-dual-wrapper{display:flex;gap:8px}.shortcut-input-wrapper{min-width:100px;display:flex;justify-content:flex-end}.shortcut-display{background:#f8f9fa;border:1px solid #dee2e6;padding:6px 12px;border-radius:4px;font-size:12px;font-family:monospace;cursor:pointer;transition:all .2s;min-width:80px;text-align:center}.shortcut-display:hover{background:#e9ecef;border-color:#adb5bd}.shortcut-input{border:1px solid #dee2e6;padding:6px 12px;border-radius:4px;font-size:12px;font-family:monospace;min-width:80px;text-align:center}.shortcut-input.editing{border-color:#007bff;background:#fff3cd;color:#856404}.shortcut-settings-footer{padding:20px;background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end;gap:10px}.shortcut-button{padding:8px 16px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.shortcut-button.primary{background:#007bff;color:#fff;border:1px solid #007bff}.shortcut-button.primary:hover{background:#0056b3;border-color:#0056b3}.shortcut-button.secondary{background:#fff;color:#6c757d;border:1px solid #6c757d}.shortcut-button.secondary:hover{background:#6c757d;color:#fff}.zoom-step-control{display:flex;align-items:center;gap:12px;padding:8px 0}.zoom-step-label{font-size:14px;color:#495057;min-width:120px}.zoom-step-slider{flex:1;min-width:120px}.zoom-step-value{font-size:14px;color:#495057;font-weight:600;min-width:45px;text-align:center;background:#f8f9fa;border:1px solid #dee2e6;padding:4px 8px;border-radius:4px}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:#2a2a2a}.top-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:#f8f8f8;border-bottom:2px solid #ddd;position:relative}.left-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.center-controls{display:flex;align-items:center;position:absolute;left:50%;transform:translate(-50%)}.debug-file-controls{display:flex;align-items:center;gap:10px}.file-controls,.history-controls,.reference-image-control{display:flex;gap:10px}.control-button{padding:8px 16px;background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:5px;transition:all .2s}.control-button:hover{background:#f0f0f0;border-color:#999}.start-button{background:#2196f3!important;color:#fff!important;border-color:#1976d2!important;margin-right:10px;transition:all .3s ease}.start-button:hover:not(:disabled){background:#1976d2!important;border-color:#1565c0!important}.start-button.started{background:#9e9e9e!important;border-color:#757575!important;opacity:.7;cursor:not-allowed!important}.done-button{background:#4caf50!important;color:#fff!important;border-color:#45a049!important;transition:all .3s ease}.done-button:hover:not(:disabled){background:#45a049!important;border-color:#3d8b40!important}.done-button.done{background:#9e9e9e!important;border-color:#757575!important;opacity:.7;cursor:not-allowed!important}.non-debug-controls{display:flex;align-items:center;gap:15px;margin-left:auto}.non-debug-buttons{display:flex;gap:10px}.timer-display{background:#333;color:#fff;padding:8px 15px;border-radius:5px;font-family:monospace;font-size:16px;font-weight:700;display:flex;align-items:center;gap:5px}.history-button-wrapper{display:flex;flex-direction:column;align-items:center;gap:2px}.shortcut-label{font-size:10px;color:#666;margin-top:-5px}.reference-hint{font-size:12px;color:#666;text-align:center;padding:5px;background:#f0f0f0;border-radius:3px;margin-top:5px}.settings-button{background:#6c757d!important;color:#fff!important;border-color:#5a6268!important;margin-right:10px}.settings-button:hover{background:#5a6268!important;border-color:#484e53!important}.history-button{width:80px;height:40px;background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;transition:all .2s}.history-arrow{font-size:24px;font-weight:900}.history-label{font-size:12px;font-weight:500}.history-button:hover:not(:disabled){background:#f0f0f0;border-color:#999}.history-button:disabled{opacity:.3;cursor:not-allowed}.main-container{display:flex;flex:1;overflow:hidden}.left-panel{width:300px;min-width:200px;max-width:600px;background:#f8f8f8;border-right:2px solid #ddd;display:flex;position:relative}.canvas-area{flex:1;display:flex;align-items:center;justify-content:center;background:#e0e0e0;padding:10px;overflow:hidden;min-height:600px}.right-panel{width:450px;min-width:300px;max-width:700px;background:#f8f8f8;border-left:2px solid #ddd;display:flex;position:relative}.reference-image{width:100%;padding:10px;border-bottom:1px solid #ddd;background:#fff;flex-shrink:0}.reference-image img{width:100%;height:auto;border:1px solid #ddd;object-fit:contain}.resizable-panel{-webkit-user-select:none;user-select:none}.panel-content{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column}.resize-handle{width:4px;background:#ddd;cursor:col-resize;transition:background .2s;flex-shrink:0}.resize-handle:hover{background:#999}.resize-handle-left{order:-1}.resize-handle-right{order:1}.resizing{cursor:col-resize}.app.loading{align-items:center;justify-content:center;background:#f5f5f5}.loading-message{font-size:18px;color:#666;text-align:center;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.config-controls{display:flex;gap:10px}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-width:500px;width:90%;max-height:80vh;overflow:auto}.description-dialog{min-height:200px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:20px;color:#333}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.modal-close:hover{background:#f0f0f0}.modal-body{padding:20px}.description-text{font-size:16px;line-height:1.6;color:#444;margin:0;white-space:pre-wrap}.modal-footer{padding:16px 20px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.modal-button{background:#4caf50;color:#fff;border:none;padding:8px 20px;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s}.modal-button:hover{background:#45a049}.info-button{background:#9c27b0;color:#fff;min-width:120px;padding:8px 16px}.info-button:hover{background:#7b1fa2}
