:root{--primary-color: #6d8a80;--primary-hover: #5a756b;--secondary-color: #4e5d6c;--background: #f8f9fa;--surface: #ffffff;--surface-light: #fdfdfd;--text-primary: #1a1c1e;--text-secondary: #5e6266;--border: #e9ecef;--success: #7a9e91;--danger: #d9534f;--warning: #f0ad4e;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 24px rgba(0, 0, 0, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--background);color:var(--text-primary);line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--surface);padding:1rem 2rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.app-header h1{font-size:1.5rem;font-weight:700;color:var(--primary-color);letter-spacing:-.02em}.app-content{display:flex;flex:1;gap:2rem;padding:2rem;overflow:hidden;max-width:1600px;margin:0 auto;width:100%}.sidebar{background:var(--surface);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:1rem;width:260px;border:1px solid var(--border);overflow-y:auto;flex-shrink:0}.main-content{flex:1;display:flex;gap:1.5rem;overflow:hidden;min-width:0}.editor-section,.preview-section{background:var(--surface);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column;height:100%;overflow:hidden;flex:1;min-width:0;border:1px solid var(--border)}.editor-header,.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:1rem}.section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--text-secondary);margin:0;width:100%;margin-bottom:1.25rem}.tool-palette h3{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--text-secondary);margin:0 0 1.25rem}.layer-panel h3{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--text-secondary);margin:0}.option-group{display:flex;flex-direction:column;gap:.8rem;margin-bottom:2rem}.add-layer-button{background:var(--primary-color);width:28px;height:28px;font-size:1rem;color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1}.editor-tools-left{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.option-group label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.option-group input[type=color]{-webkit-appearance:none;border:1px solid var(--border);width:100%;height:36px;cursor:pointer;background:var(--surface);border-radius:var(--radius-sm);padding:3px;transition:all .2s}.option-group input[type=color]::-webkit-color-swatch-wrapper{padding:0}.option-group input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.option-group input[type=range]{-webkit-appearance:none;width:100%;height:4px;background:#e9ecef;border-radius:2px;outline:none;margin:12px 0}.option-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--primary-color);cursor:pointer;border-radius:50%;border:2px solid white;box-shadow:var(--shadow-sm);transition:all .2s}.option-group input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1);background:var(--primary-hover)}.tool-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:2rem}.tool-button{padding:.75rem;border:1px solid var(--border);background:var(--surface-light);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center;gap:.5rem}.tool-button:hover{background:var(--background);border-color:var(--primary-color);transform:translateY(-2px)}.tool-button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 4px 12px #6d8a804d}.tool-icon{font-size:1.25rem}.tool-label{font-size:.8125rem;font-weight:600}.layer-item{padding:.75rem 1rem;background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.5rem;display:flex;align-items:center;gap:.75rem;transition:all .2s}.layer-item:hover{border-color:var(--primary-color)}.layer-item.active{background:#f0f4f2;border-color:var(--primary-color);box-shadow:inset 0 0 0 1px var(--primary-color)}.layer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.add-layer-button:hover{background:var(--primary-hover);transform:scale(1.1)}.visibility-button,.move-button,.delete-button{background:none;border:none;cursor:pointer;font-size:1rem;padding:2px;color:var(--text-secondary);transition:all .2s}.visibility-button{background:#dee2e6;border:none;cursor:pointer;width:32px;height:18px;border-radius:9px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.visibility-button:before{content:"";position:absolute;width:14px;height:14px;background:#fff;border-radius:50%;left:2px;top:2px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #0000001a}.visibility-button.visible{background:var(--primary-color)}.visibility-button.visible:before{left:16px}.layer-name{flex:1;font-size:.8rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-controls{display:flex;gap:.8rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:center}.edit-actions-group{display:flex;gap:.8rem;align-items:center}.save-load-group{display:flex;gap:.8rem;margin-left:auto}.save-btn,.load-btn{min-width:60px}.save-btn,.load-btn,.undo-btn,.redo-btn{padding:.5rem .8rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;transition:all .2s;border:1px solid var(--border);background:var(--surface);color:var(--text-primary);cursor:pointer}.save-btn:hover,.load-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.undo-btn:hover:not(:disabled),.redo-btn:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.undo-btn:disabled,.redo-btn:disabled{opacity:.3;cursor:not-allowed}.canvas-scroll-area{background:#fdfdfd;border:1px solid var(--border);border-radius:var(--radius-md);padding:2rem;flex:1;overflow:auto;display:flex;justify-content:center;align-items:center}.canvas-container{box-shadow:var(--shadow-lg)!important;border-radius:4px;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#e9ecef;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#dee2e6}.replication-toggle{display:flex;align-items:center;gap:1rem}.toggle-switch{position:relative;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#dee2e6;transition:.3s;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.slider{background-color:var(--success)}.toggle-switch input:checked+.slider:before{transform:translate(20px)}.preview-controls-left{display:flex;align-items:center;gap:1rem}.preview-mode-selector{background:#f1f3f5;padding:3px;border-radius:10px;display:flex;gap:2px}.preview-mode-selector button{border:none;background:transparent;color:var(--text-secondary);border-radius:7px;padding:.4rem 1rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.preview-mode-selector button:hover{color:var(--text-primary)}.preview-mode-selector button.active{background:var(--surface);color:var(--primary-color);box-shadow:var(--shadow-sm)}.reset-btn{border:1px solid #dee2e6!important;color:var(--text-secondary);background:transparent;padding:.5rem .8rem;font-size:.75rem;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:all .2s}.reset-btn:hover{color:var(--danger);background:#d9534f0d;border-color:var(--danger)!important}.grid-size-selector{display:flex;align-items:center;gap:1rem}.grid-size-selector label{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.size-buttons{display:flex;background:#f1f3f5;padding:3px;border-radius:8px}.size-button{border:none;background:transparent;padding:.4rem .8rem;font-size:.8125rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s;color:var(--text-secondary)}.size-button.active{background:var(--surface);color:var(--primary-color);box-shadow:var(--shadow-sm)}.zoom-control{display:flex;align-items:center;gap:.75rem}.zoom-control label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0}.zoom-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding:.4rem 2rem .4rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;outline:none;cursor:pointer;transition:all .2s}.zoom-control select:hover{border-color:var(--primary-color)}.auto-fit-label{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#f1f3f5;border-radius:var(--radius-sm);font-weight:600;color:var(--text-secondary);cursor:pointer;font-size:.75rem;transition:all .2s}.auto-fit-label:hover{background:#e9ecef}.auto-fit-label input{margin:0;cursor:pointer}.tiled-preview{flex:1;overflow:auto;min-height:0}.preview-container{display:inline-block}.preview-canvas-wrapper{overflow:hidden}.preview-hint{font-size:.7rem;color:var(--text-secondary);text-align:center;margin-top:.5rem}.canvas-area-wrapper{position:relative;flex:1;display:flex;flex-direction:column;min-height:0}.setting-fab{display:none;position:fixed;bottom:1.25rem;right:1.25rem;z-index:500;width:48px;height:48px;border-radius:50%;background:var(--primary-color);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 12px #00000040;align-items:center;justify-content:center;transition:all .2s}.setting-fab:hover{background:var(--primary-hover);transform:scale(1.05)}.setting-fab:active{transform:scale(.95)}.setting-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.setting-modal{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.setting-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:1}.setting-modal-header h3{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0}.setting-modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0 .25rem;line-height:1}.setting-modal-body{padding:1.25rem;display:flex;flex-direction:column;gap:1.5rem}.reset-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.reset-dialog{background:var(--surface);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-lg);max-width:360px;width:90%;text-align:center}.reset-dialog p{font-size:.95rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.reset-dialog-warning{font-size:.8rem!important;font-weight:500!important;color:var(--danger)!important;margin-bottom:1.5rem!important}.reset-dialog-buttons{display:flex;gap:.75rem;justify-content:center}.reset-dialog-cancel,.reset-dialog-confirm{padding:.5rem 1.5rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid var(--border)}.reset-dialog-cancel{background:var(--surface);color:var(--text-primary)}.reset-dialog-cancel:hover{background:var(--background)}.reset-dialog-confirm{background:var(--danger);color:#fff;border-color:var(--danger)}.reset-dialog-confirm:hover{background:#c9302c;border-color:#c9302c}@media (max-width: 1200px){.app-content{flex-direction:column;padding:1rem;gap:1rem}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;gap:1rem}.sidebar .tool-palette,.sidebar .layer-panel{flex:1;min-width:200px}.main-content{flex-direction:column;gap:1rem}.editor-section,.preview-section{height:auto;overflow:visible}}@media (max-width: 768px){.app-header{padding:.75rem 1rem}.app-header h1{font-size:1.2rem}.app-content{padding:.75rem;gap:.75rem}.sidebar{display:none}.setting-fab{display:flex}.editor-section,.preview-section{padding:1rem;border-radius:var(--radius-md);height:auto;overflow:visible}.section-title{font-size:.7rem;margin-bottom:.75rem}.editor-header{flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem}.editor-tools-left{justify-content:center}.editor-controls{flex-direction:column;gap:.5rem;margin-bottom:1rem;align-items:center}.save-load-group{order:-1;margin-left:0}.edit-actions-group{order:0}.save-btn,.load-btn,.undo-btn,.redo-btn,.reset-btn{padding:.4rem .6rem;font-size:.7rem}.preview-header{flex-direction:column;align-items:center;gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem}.preview-controls-left{flex-wrap:nowrap;justify-content:center;gap:.5rem}.preview-header .zoom-control{justify-content:center}.tiled-preview{display:flex;justify-content:center}.preview-container{display:flex;flex-direction:column;align-items:center}.grid-size-selector{flex-wrap:wrap;justify-content:center;gap:.5rem}.size-buttons{flex-wrap:wrap}.size-button{padding:.35rem .6rem;font-size:.75rem}.canvas-scroll-area{padding:1rem;min-height:300px}.preview-mode-selector button{padding:.3rem .6rem;font-size:.7rem}.zoom-control{flex-wrap:wrap;justify-content:center;gap:.5rem}.replication-toggle{gap:.5rem}.reset-dialog{padding:1.5rem}}@media (max-width: 480px){.app-header{padding:.5rem .75rem}.app-header h1{font-size:1rem}.app-content{padding:.5rem;gap:.5rem}.editor-section,.preview-section{padding:.75rem}.editor-controls{flex-wrap:wrap;justify-content:center}.canvas-scroll-area{padding:.5rem;min-height:250px}.preview-mode-selector button{padding:.25rem .4rem;font-size:.65rem}}
