.parameter-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:var(--shadow-tight);background:#fffffffa;flex-direction:column;gap:12px;padding:16px;display:flex}.chips-section{border-bottom:1px solid var(--line);padding-bottom:12px}.chips-section h3{color:#333;margin:0 0 6px;font-size:.8rem;font-weight:600}.chips-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:8px;display:grid;overflow:visible}.chip-item{aspect-ratio:1;cursor:grab;border:1px solid #0d59f238;transition:transform .2s,box-shadow .2s;position:relative;overflow:visible}.chip-item:hover{box-shadow:var(--shadow-tight);z-index:10;transform:translateY(-2px)}.chip-item:active{cursor:grabbing}.chip-item img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;width:100%;height:100%}.chip-filename{color:#fff;text-align:center;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#000000b3;border-radius:2px;padding:2px 4px;font-size:9px;position:absolute;top:2px;left:2px;right:2px;overflow:hidden}.chip-edit{color:#fff;cursor:pointer;z-index:10;background:#ff9800e6;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:10px;line-height:1;transition:background .2s;display:flex;position:absolute;top:-6px;left:-6px}.chip-edit:hover{background:#ff9800}.chip-duplicate{color:#fff;cursor:pointer;z-index:10;background:#2196f3e6;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:10px;line-height:1;transition:background .2s;display:flex;position:absolute;bottom:2px;right:2px}.chip-duplicate:hover{background:#2196f3}.chip-remove{color:#fff;cursor:pointer;z-index:10;background:#f00c;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:14px;line-height:1;transition:background .2s;display:flex;position:absolute;top:-6px;right:-6px}.chip-remove:hover{background:red}.chip-group-badge{cursor:pointer;color:#fff;z-index:5;background:#0d59f2e6;border:2px solid #fff;border-radius:10px;justify-content:center;align-items:center;gap:2px;min-width:22px;height:18px;padding:0 4px;font-size:10px;font-weight:700;transition:all .2s;display:flex;position:absolute;bottom:2px;left:2px}.chip-group-badge:hover{background:var(--accent);transform:scale(1.1);box-shadow:0 2px 4px #0000004d}.chip-group-letter{font-size:11px}.chip-group-arrow{opacity:.7;font-size:9px}.param-section{flex-direction:column;gap:6px;display:flex}.param-section h3{color:#333;border-bottom:1px solid var(--line);margin:0;padding-bottom:4px;font-size:.8rem;font-weight:600}.param-group{flex-direction:column;gap:4px;display:flex}.param-group label{color:#333;font-size:.75rem;font-weight:500}.param-group input[type=number],.param-group select{color:#333;background:#fff;border:1px solid #ddd;padding:4px 6px;font-size:.8rem;transition:border-color .2s}.param-group input[type=number]:focus,.param-group select:focus{border-color:var(--accent);outline:none}.param-group input[type=range]{cursor:pointer;width:100%}.param-row{align-items:center;gap:8px;display:flex}.param-row input[type=number]{flex:1}.param-row span{color:#666;font-weight:600}.color-picker-row{align-items:center;gap:10px;display:flex}.color-picker-row input[type=color]{cursor:pointer;border:1px solid #ddd;border-radius:4px;width:60px;height:36px}.color-value{color:#666;font-family:monospace;font-size:.85rem}.generate-button{cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:6px;margin-top:5px;padding:12px 20px;font-size:1rem;font-weight:600;transition:all .3s;box-shadow:0 4px 12px #667eea4d;color:#fff!important}.generate-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.generate-button:active:not(:disabled){transform:translateY(0)}.generate-button:disabled{opacity:.6;cursor:not-allowed}.size-group-item{background:#667eea0d;border-radius:4px;margin-bottom:4px;padding:4px 6px}.size-group-item-compact{background:#667eea0d;border-radius:4px;align-items:center;gap:6px;margin-bottom:3px;padding:3px 6px;display:flex}.size-group-item-compact input[type=number]{color:#333;background:#fff;border:1px solid #ddd;border-radius:3px;padding:3px 4px;transition:border-color .2s}.size-group-item-compact input[type=number]:focus{border-color:#667eea;outline:none}.row-setting-item{background:#ffa5000d;border-left:2px solid #ffa50080;border-radius:4px;margin-bottom:4px;padding:4px 6px;transition:transform .2s,box-shadow .2s}.row-setting-item:hover{transform:translateY(-1px);box-shadow:0 2px 6px #ffa50033}.row-setting-item:active{cursor:grabbing}.drag-handle{color:#999;cursor:grab;-webkit-user-select:none;user-select:none;padding:2px;font-size:14px;line-height:1;transition:color .2s}.drag-handle:hover{color:#667eea}.row-setting-item:active .drag-handle{cursor:grabbing}.add-group-button{cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:4px;padding:6px 12px;font-size:.85rem;font-weight:600;transition:all .2s;color:#fff!important}.add-group-button,.add-group-button:visited,.add-group-button:hover,.add-group-button:focus-visible,.add-group-button-label,.add-group-button span,.add-group-button-icon,.add-group-button svg,.add-group-button svg path,.add-group-button svg *{color:#fff!important;fill:#fff!important;stroke:#fff!important}.add-group-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.add-group-button:disabled{opacity:.5;cursor:not-allowed}.remove-group-button{cursor:pointer;background:#f00c;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:16px;line-height:1;transition:background .2s;display:flex;color:#fff!important}.remove-group-button:hover{background:red}.pattern-editor{flex-direction:column;gap:10px;display:flex;overflow:visible}.pattern-row{background:#667eea0d;border:2px dashed #667eea4d;border-radius:4px;flex-wrap:wrap;gap:6px;min-height:40px;padding:6px;display:flex;overflow:visible}.pattern-tile{color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:6px;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.2rem;font-weight:700;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:visible;box-shadow:0 2px 8px #667eea4d}.pattern-tile-image{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;width:100%;height:100%}.pattern-tile-text{pointer-events:none;-webkit-user-select:none;user-select:none}.pattern-tile:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.pattern-tile:active{cursor:grabbing;opacity:.7}.pattern-remove{color:#fff;cursor:pointer;background:#ff0000e6;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:12px;line-height:1;transition:background .2s;display:flex;position:absolute;top:-6px;right:-6px}.pattern-remove:hover{background:red}.pattern-add-tile{cursor:pointer;background:#667eea14;border:none;transition:all .2s;box-shadow:0 2px 6px #667eea26}.pattern-add-tile:hover{background:#667eea1f;transform:translateY(-2px);box-shadow:0 3px 8px #667eea33}.pattern-add-icon{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.25;color:#999;font-size:1.5rem;font-weight:400}.chip-modal-backdrop{z-index:999;background:#0000004d;animation:.15s ease-out fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chip-modal{z-index:1000;background:#fff;border-radius:8px;flex-direction:column;width:300px;max-height:400px;animation:.2s ease-out slideUp;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 24px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}.chip-modal-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-bottom:1px solid #e0e0e0;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:10px 12px;font-size:.9rem;font-weight:600;display:flex}.chip-modal-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:18px;line-height:1;transition:background .2s;display:flex}.chip-modal-close:hover{background:#ffffff4d}.chip-modal-grid{grid-template-columns:repeat(3,1fr);gap:8px;max-height:340px;padding:12px;display:grid;overflow-y:auto}.chip-modal-item{cursor:pointer;background:#fff;border:2px solid #667eea4d;border-radius:6px;flex-direction:column;align-items:center;gap:4px;padding:6px;transition:all .2s;display:flex}.chip-modal-item:hover{background:#667eea0d;border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 8px #667eea33}.chip-modal-item img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;pointer-events:none;border-radius:4px;width:60px;height:60px}.chip-modal-item-name{color:#666;text-align:center;word-break:break-word;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:.7rem;display:-webkit-box;overflow:hidden}.pattern-add-buttons{flex-wrap:wrap;gap:6px;display:flex}.add-pattern-button{color:#667eea;cursor:pointer;background:#fff;border:2px solid #667eea;border-radius:4px;padding:8px 12px;font-size:.85rem;font-weight:600;transition:all .2s}.add-pattern-button:hover{color:#fff;background:#667eea;transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.crop-modal{z-index:1000;background:#fff;border-radius:8px;flex-direction:column;width:95vw;height:95vh;animation:.2s ease-out slideUp;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 24px #0000004d}.crop-modal-content{background:#f5f5f5;flex:1;justify-content:center;align-items:center;padding:12px;display:flex;overflow:auto}.crop-canvas{cursor:crosshair;border:1px solid #ddd;max-width:100%;max-height:calc(95vh - 120px)}.crop-modal-footer{border-top:1px solid #e0e0e0;justify-content:flex-end;gap:10px;padding:12px;display:flex}.crop-cancel-button{cursor:pointer;color:#333;background:#f0f0f0;border:1px solid #ddd;border-radius:4px;padding:8px 16px;font-size:.9rem;transition:all .2s}.crop-cancel-button:hover{background:#e0e0e0}.crop-apply-button{cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:4px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:all .2s;color:#fff!important}.crop-apply-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.crop-apply-button:disabled{opacity:.5;cursor:not-allowed}
.preview-panel{flex-direction:column;height:100%;min-height:100%;padding:1rem;display:flex}.preview-controls{border-bottom:1px solid #e9ecef;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.control-group{flex-flow:wrap;align-items:center;gap:1rem;display:flex}.toggle-label{color:#333;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;display:flex}.tile-size-select{color:#333;cursor:pointer;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;outline:none;padding:.4rem .6rem;font-size:.85rem;transition:all .2s}.tile-size-select:hover{background:#e9ecef;border-color:#667eea}.tile-size-select:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.zoom-indicator{color:#666;min-width:80px;font-size:.85rem;font-weight:500}.preview-info{color:#666;font-family:monospace;font-size:.85rem}.preview-canvas-container{height:var(--tool-preview-canvas-height);min-height:var(--tool-preview-canvas-height);max-height:var(--tool-preview-canvas-height);padding:var(--tool-preview-surface-padding);box-sizing:border-box;background-color:#f8f9fa;background-image:linear-gradient(45deg,#eee 25%,#0000 25%),linear-gradient(-45deg,#eee 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eee 75%),linear-gradient(-45deg,#0000 75%,#eee 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:4px;flex:none;justify-content:center;align-items:center;display:flex;position:relative;overflow:auto}.download-button{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.download-button:hover:not(:disabled){background:#5568d3;transform:translateY(-1px)}.download-button:disabled{cursor:not-allowed;background:#ccc;transform:none}.download-menu-backdrop{z-index:998;background:0 0;position:fixed;inset:0}.download-menu{z-index:999;background:#fff;border-radius:6px;min-width:220px;animation:.15s ease-out slideDown;position:absolute;top:calc(100% + 5px);right:0;overflow:hidden;box-shadow:0 4px 16px #00000026}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.download-menu-item{cursor:pointer;color:#333;border-bottom:1px solid #f0f0f0;padding:.75rem 1rem;font-size:.9rem;transition:background .2s}.download-menu-item:last-child{border-bottom:none}.download-menu-item:hover{background:#667eea1a}.download-menu-item span{align-items:center;gap:.5rem;display:flex}.tiled-background{transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;pointer-events:auto;background:#fff;border:1px solid #ddd;border-radius:0;box-shadow:0 2px 8px #0000001a}.preview-canvas-container,.tiled-background{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.preview-canvas-container:before,.tiled-background:before{content:"";pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}@media (max-width:768px){.preview-panel{padding:1rem}.preview-controls{gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem}.control-group{gap:.5rem}.toggle-label{font-size:.8rem}.download-button{padding:.3rem .6rem;font-size:.85rem}}
