:root{--ui-spacing-xs: 4px;--ui-spacing-sm: 8px;--ui-spacing-md: 12px;--ui-spacing-lg: 16px;--ui-spacing-xl: 24px;--ui-font-size-xs: 11px;--ui-font-size-sm: 12px;--ui-font-size-md: 13px;--ui-font-size-lg: 16px;--ui-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--ui-border-radius: 4px;--ui-border-radius-sm: 2px;--ui-transition-duration: .2s}:root,[data-theme=dark]{--ui-color-background: #00224d;--ui-color-background-alt: #002d64;--ui-color-background-secondary: #5d0e41;--ui-color-border: #781450;--ui-color-border-light: #a0153e;--ui-color-text: #ffffff;--ui-color-text-secondary: rgba(255, 255, 255, .85);--ui-color-text-muted: rgba(255, 255, 255, .5);--ui-color-primary: #ff204e;--ui-color-primary-hover: #ff466e;--ui-color-primary-active: #a0153e;--ui-color-primary-light: rgba(255, 32, 78, .15);--ui-color-success: #22c55e;--ui-color-success-hover: #16a34a;--ui-color-danger: #ef4444;--ui-color-danger-hover: #dc2626;--ui-color-warning: #f59e0b;--ui-color-focus: #ff204e;--ui-color-focus-ring: rgba(255, 32, 78, .35);--ui-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23cccccc' d='M1 4l5 4 5-4'/%3E%3C/svg%3E")}[data-theme=light]{--ui-color-background: #ffef9f;--ui-color-background-alt: #ffe97d;--ui-color-background-secondary: #fedc5a;--ui-color-border: #f082aa;--ui-color-border-light: #ff537b;--ui-color-text: #00224d;--ui-color-text-secondary: rgba(0, 34, 77, .85);--ui-color-text-muted: rgba(0, 34, 77, .5);--ui-color-primary: #e13f7c;--ui-color-primary-hover: #ff537b;--ui-color-primary-active: #b4285f;--ui-color-primary-light: rgba(225, 63, 124, .15);--ui-color-success: #16a34a;--ui-color-success-hover: #15803d;--ui-color-danger: #dc2626;--ui-color-danger-hover: #b91c1c;--ui-color-warning: #d97706;--ui-color-focus: #e13f7c;--ui-color-focus-ring: rgba(225, 63, 124, .35);--ui-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2300224d' d='M1 4l5 4 5-4'/%3E%3C/svg%3E")}.ui-button{font-family:var(--ui-font-family);border-radius:var(--ui-border-radius);cursor:pointer;transition:all var(--ui-transition-duration) ease;font-weight:500;border:none;outline:none;user-select:none}.ui-button--primary{background:var(--ui-color-primary);color:#fff;border:1px solid var(--ui-color-primary)}.ui-button--primary:hover{background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}.ui-button--primary:active{background:var(--ui-color-primary-active);border-color:var(--ui-color-primary-active)}.ui-button--secondary{background:transparent;color:var(--ui-color-text);border:1px solid var(--ui-color-border)}.ui-button--secondary:hover{background:var(--ui-color-background-secondary);border-color:var(--ui-color-border-light)}.ui-button--success{background:var(--ui-color-success);color:#fff;border:1px solid var(--ui-color-success)}.ui-button--success:hover{background:var(--ui-color-success-hover);border-color:var(--ui-color-success-hover)}.ui-button--danger{background:var(--ui-color-danger);color:#fff;border:1px solid var(--ui-color-danger)}.ui-button--danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}.ui-button--sm{padding:var(--ui-spacing-xs) var(--ui-spacing-sm);font-size:var(--ui-font-size-xs)}.ui-button--md{padding:var(--ui-spacing-sm) var(--ui-spacing-md);font-size:var(--ui-font-size-sm)}.ui-button--lg{padding:var(--ui-spacing-md) var(--ui-spacing-lg);font-size:var(--ui-font-size-md)}.ui-button--full-width{width:100%}.ui-button:focus-visible{outline:2px solid var(--ui-color-focus);outline-offset:2px;box-shadow:0 0 0 4px var(--ui-color-focus-ring)}.ui-input,.ui-select,.ui-textarea{width:100%;padding:var(--ui-spacing-sm) var(--ui-spacing-md);background:var(--ui-color-background-secondary);border:1px solid var(--ui-color-border);color:var(--ui-color-text);border-radius:var(--ui-border-radius);font-size:var(--ui-font-size-sm);font-family:var(--ui-font-family);transition:all var(--ui-transition-duration) ease;box-sizing:border-box}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{outline:none;border-color:var(--ui-color-focus);background:var(--ui-color-background-alt)}.ui-input:focus-visible,.ui-select:focus-visible,.ui-textarea:focus-visible{box-shadow:0 0 0 3px var(--ui-color-focus-ring)}.ui-input--error,.ui-select--error,.ui-textarea--error{border-color:var(--ui-color-danger)}.ui-input--error:focus,.ui-select--error:focus,.ui-textarea--error:focus{border-color:var(--ui-color-danger)}.ui-select{appearance:none;background-image:var(--ui-select-chevron);background-repeat:no-repeat;background-position:right var(--ui-spacing-md) center;padding-right:calc(var(--ui-spacing-md) + 16px)}.ui-select:hover{border-color:var(--ui-color-border-light)}.ui-textarea{resize:vertical;min-height:80px;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace}.ui-form-group{margin-bottom:var(--ui-spacing-md)}.ui-form-group--full-width{width:100%;margin-bottom:var(--ui-spacing-md)}.ui-label{display:block;font-size:var(--ui-font-size-sm);margin-bottom:var(--ui-spacing-xs);color:var(--ui-color-text-secondary);font-weight:500}.ui-error{font-size:var(--ui-font-size-xs);color:var(--ui-color-danger);margin-top:var(--ui-spacing-xs)}.ui-checkbox-container{display:flex;align-items:center;gap:var(--ui-spacing-sm);margin-bottom:var(--ui-spacing-md)}.ui-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--ui-color-primary)}.ui-checkbox-label{font-size:var(--ui-font-size-sm);color:var(--ui-color-text-secondary);cursor:pointer;user-select:none}.ui-checkbox:hover+.ui-checkbox-label{color:var(--ui-color-text)}.ui-radio-group{margin-bottom:var(--ui-spacing-md)}.ui-radio-options{display:flex;flex-direction:column;gap:var(--ui-spacing-sm)}.ui-radio-option{position:relative;display:inline-flex}.ui-radio{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ui-radio-label{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:calc(var(--ui-spacing-xs) + 2px) var(--ui-spacing-md);border-radius:var(--ui-border-radius);background:var(--ui-color-background-secondary);border:1px solid var(--ui-color-border);color:var(--ui-color-text-secondary);cursor:pointer;font-size:var(--ui-font-size-sm);transition:all var(--ui-transition-duration) ease;user-select:none}.ui-radio-label:hover{color:var(--ui-color-text);background:var(--ui-color-background-alt);border-color:var(--ui-color-border-light)}.ui-radio:checked+.ui-radio-label{background:var(--ui-color-primary);border-color:var(--ui-color-primary);color:#fff;box-shadow:0 0 0 4px var(--ui-color-primary-light)}.ui-radio:focus-visible+.ui-radio-label{outline:2px solid var(--ui-color-focus);outline-offset:2px}.ui-range{width:100%;height:6px;border-radius:3px;background:var(--ui-color-border);outline:none;-webkit-appearance:none}.ui-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--ui-color-primary);cursor:pointer;transition:all var(--ui-transition-duration) ease}.ui-range::-webkit-slider-thumb:hover{background:var(--ui-color-primary-hover);transform:scale(1.2)}.ui-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ui-color-primary);cursor:pointer;border:none;transition:all var(--ui-transition-duration) ease}.ui-range::-moz-range-thumb:hover{background:var(--ui-color-primary-hover);transform:scale(1.2)}.ui-range::-moz-range-track{background:transparent;border:none}.ui-button:focus,.ui-button:focus-visible{outline:2px solid var(--ui-color-focus);outline-offset:2px}.ui-input:focus-visible,.ui-select:focus-visible,.ui-textarea:focus-visible{outline:2px solid var(--ui-color-focus);outline-offset:2px}.map-editor-overlay{position:fixed;inset:0;background:#1e1e1e;z-index:10000}.map-editor-container{width:100vw;height:100vh;background:#1e1e1e;display:flex;overflow:hidden}.map-editor-sidebar{width:300px;background:#252526;border-right:1px solid #3e3e42;padding:16px;flex-shrink:0;display:flex;flex-direction:column}.map-editor-sidebar.left-panel{overflow:hidden}.map-editor-sidebar.left-panel>.settings-container{overflow-y:auto;flex:1}.map-editor-sidebar.left-panel>.export-container{flex-shrink:0;margin-top:16px;border-top:1px solid #3e3e42;padding-top:16px}.map-editor-main{flex:1;display:flex;flex-direction:column}.editor-toolbar{background:#2d2d30;border-bottom:1px solid #3e3e42;padding:8px 16px;display:flex;gap:16px;align-items:center;font-size:12px}.editor-canvas-area{flex:1;position:relative;background:#1a1a1a;overflow:hidden}.editor-canvas-area canvas{display:block;width:100%;height:100%}.editor-snap-overlay{position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:6px;z-index:10;pointer-events:all}.snap-toggle-btn{display:flex;align-items:center;gap:4px;padding:4px 9px;background:#252526e0;border:1px solid #3e3e42;border-radius:4px;color:#858585;font-size:11px;cursor:pointer;white-space:nowrap}.snap-toggle-btn:hover{background:#2d2d30f2;border-color:#555;color:#ccc}.snap-toggle-btn.active{border-color:#4ec9b0;color:#4ec9b0;background:#4ec9b01a}.snap-size-input{width:52px;padding:3px 6px;background:#252526e0;border:1px solid #3e3e42;border-radius:4px;color:#ccc;font-size:11px}.snap-size-input:focus{outline:none;border-color:#4ec9b0}.editor-panel{border-top:1px solid #3e3e42;padding:10px}.compact-fields .ui-form-group,.compact-fields .ui-form-group--full-width{margin-bottom:4px}.collapsible-panel{padding:0}.collapsible-panel .panel-summary{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:none;padding:10px;cursor:pointer;text-align:left}.collapsible-panel .panel-summary:hover,.collapsible-panel .panel-summary:focus-visible{background:#4ec9b014}.collapsible-panel .panel-summary-icon{font-size:16px;line-height:1}.collapsible-panel .panel-summary-body{padding:0 10px 10px}.right-panel-section .editor-panel{margin-bottom:4px}.panel-title{font-weight:600;margin-bottom:5px;color:#4ec9b0;font-size:12px;text-transform:uppercase}.form-group{margin-bottom:10px}.form-group label{display:block;font-size:12px;margin-bottom:4px;color:#ccc}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:6px 8px;background:#3c3c3c;border:1px solid #555555;color:#e0e0e0;border-radius:3px;font-size:12px}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group select:focus{outline:none;border-color:#007acc;background:#454545}.item-list{max-height:150px;overflow-y:auto;border:1px solid #3e3e42;border-radius:3px;background:#1e1e1e;margin-top:3px}.item-entry{padding:8px;border-bottom:1px solid #3e3e42;display:flex;justify-content:space-between;align-items:center;font-size:12px}.item-entry:hover{background:#2d2d30}.item-entry.selected{background:#0e639c}.item-name{flex:1;color:#e0e0e0}.item-remove{padding:2px 6px;background:#be2d2d;color:#fff;border:none;border-radius:2px;cursor:pointer;font-size:11px;margin-left:8px;transition:background .2s}.item-remove:hover{background:#d33333}.export-button{width:100%;background:#107c10;color:#fff;border:none;padding:8px;border-radius:3px;cursor:pointer;font-size:12px;margin-top:10px;transition:background .2s}.export-button:hover{background:#129312}button.secondary{background:#555;color:#fff;border:none;padding:6px 12px;border-radius:3px;cursor:pointer;font-size:12px;transition:background .2s}button.secondary:hover{background:#666}button.danger{background:#be2d2d;color:#fff;border:none;padding:6px 12px;border-radius:3px;cursor:pointer;font-size:12px;transition:background .2s}button.danger:hover{background:#d33333}.map-editor-sidebar::-webkit-scrollbar,.item-list::-webkit-scrollbar{width:8px}.map-editor-sidebar::-webkit-scrollbar-track,.item-list::-webkit-scrollbar-track{background:#1e1e1e}.map-editor-sidebar::-webkit-scrollbar-thumb,.item-list::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.map-editor-sidebar::-webkit-scrollbar-thumb:hover,.item-list::-webkit-scrollbar-thumb:hover{background:#666}.map-editor-sidebar.right-panel{width:300px;border-left:1px solid #3e3e42;border-right:none;display:flex;flex-direction:column;padding:0}.right-panel-section{padding:10px;border-bottom:1px solid #3e3e42;overflow-y:auto;min-height:0}.right-panel-section:first-child{max-height:200px}.right-panel-section:nth-child(2){flex:1;overflow-y:auto}.right-panel-section:last-child{flex-shrink:0;max-height:250px}*{box-sizing:border-box}body{margin:0;padding:0;overflow:hidden;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}html,body,#root{width:100%;height:100%}input[type=text],input[type=range],select,button{font-family:inherit}:focus-visible{outline:2px solid var(--ui-color-focus, #007acc);outline-offset:2px}input[type=checkbox]{cursor:pointer}.game-canvas-container{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:1}.game-canvas-canvas{background:transparent!important;position:relative;z-index:2;pointer-events:auto}
