@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.animation-canvas-container{width:100%;height:100%;position:relative;overflow:hidden;background:#2a2a2a}.animation-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}.state-list{display:flex;flex-direction:column;max-height:600px;padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-lg)}.state-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:var(--border-width-medium) solid var(--border-light)}.state-list-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.header-actions{display:flex;gap:var(--space-2);align-items:center}.clear-all-btn{width:32px;height:32px;border:none;border-radius:var(--radius-full);background:var(--color-error);color:var(--color-white);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center}.clear-all-btn:hover:not(:disabled){background:var(--color-error-hover);transform:scale(1.05)}.clear-all-btn:disabled{background:var(--color-gray-600);cursor:not-allowed;opacity:.5}.add-state-btn{width:32px;height:32px;border:none;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-var(--color-white));font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center}.add-state-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.05)}.add-state-btn:disabled{background:var(--color-gray-600);cursor:not-allowed}.add-state-form{margin-bottom:var(--space-4);padding:var(--space-3);background:var(--bg-primary);border:var(--border-width-medium) solid var(--color-primary);border-radius:var(--radius-lg)}.state-name-input{width:100%;padding:var(--space-2) var(--space-3);border:var(--border-width-thin) solid var(--border-medium);border-radius:var(--radius-base);font-size:var(--font-size-base);margin-bottom:var(--space-2);font-family:var(--font-primary);color:var(--text-primary);background:var(--bg-primary)}.state-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.add-state-actions{display:flex;gap:var(--space-2)}.save-btn,.cancel-btn{padding:6px var(--space-3);border:none;border-radius:var(--radius-base);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-base);font-weight:var(--font-weight-medium)}.save-btn{background:var(--color-success);color:var(--color-var(--color-white))}.save-btn:hover:not(:disabled){background:var(--color-success-hover)}.save-btn:disabled{background:var(--color-gray-600);cursor:not-allowed}.cancel-btn{background:var(--color-gray-600);color:var(--color-var(--color-white))}.default-states-section{margin-bottom:var(--space-4)}.default-states-section h4{margin:0 0 var(--space-2) 0;color:var(--text-secondary);font-size:var(--font-size-sm);text-transform:uppercase;font-weight:var(--font-weight-semibold)}.default-states-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:var(--space-1)}.default-state-btn{padding:var(--space-1) var(--space-2);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-base);background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-base)}.default-state-btn:hover{background:var(--bg-hover);border-color:var(--border-medium)}.states-container{flex:1;overflow-y:auto}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-secondary)}.empty-state p{margin:var(--space-2) 0}.states-list{display:flex;flex-direction:column;gap:var(--space-2)}.state-item{padding:var(--space-3);background:var(--bg-primary);border:var(--border-width-medium) solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);position:relative}.state-item:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.state-item.active{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:var(--shadow-primary)}.state-item.expanded{border-color:var(--color-primary)}.state-info{display:flex;flex-direction:column;gap:var(--space-1);margin-right:60px}.state-name{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--font-size-base);display:inline-block;max-width:-moz-fit-content;max-width:fit-content}.state-name.clickable{cursor:pointer;transition:color .2s ease;padding:2px 4px;margin:-2px -4px;border-radius:var(--radius-sm)}.state-name.clickable:hover{color:var(--color-primary);text-decoration:underline;background:var(--bg-hover)}.state-meta{font-size:var(--font-size-sm);color:var(--text-secondary)}.state-actions{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;gap:var(--space-1);align-items:center}.toggle-accordion-btn,.move-up-btn,.move-down-btn,.edit-btn,.duplicate-btn,.remove-btn{width:24px;height:24px;border:none;border-radius:var(--radius-base);background:transparent;cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-base)}.toggle-accordion-btn:hover{background:var(--color-info-light)}.move-up-btn:disabled,.move-down-btn:disabled{opacity:.3;cursor:not-allowed}.move-up-btn:hover:not(:disabled),.move-down-btn:hover:not(:disabled){background:var(--color-primary-light)}.edit-btn:hover{background:var(--bg-hover)}.duplicate-btn:hover{background:var(--color-info-light)}.edit-state-form{display:flex;flex-direction:column;gap:var(--space-2)}.edit-actions{display:flex;gap:var(--space-1)}.edit-actions .save-btn,.edit-actions .cancel-btn{width:24px;height:24px;padding:0;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center}.current-state-info{margin-top:var(--space-4);padding:var(--space-3);background:var(--bg-primary);border:var(--border-width-thin) solid var(--border-light);border-radius:var(--radius-lg)}.current-state-info h4{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.state-details p{margin:var(--space-1) 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.state-details p strong{color:var(--text-primary)}@media(max-width:768px){.state-list{padding:var(--space-3)}.default-states-grid{grid-template-columns:repeat(auto-fit,minmax(50px,1fr))}.state-item{padding:10px}.state-info{margin-right:50px}.state-actions{right:10px;top:10px}}.fps-display{padding:2px var(--space-1);border-radius:var(--radius-sm)}.fps-edit-form{display:flex;flex-direction:column;gap:var(--space-2)}.fps-edit-form label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.fps-input{width:80px;padding:var(--space-1) var(--space-2);border:var(--border-width-thin) solid var(--border-medium);border-radius:var(--radius-base);font-size:var(--font-size-base);font-family:var(--font-primary);color:var(--text-primary);background:var(--bg-primary)}.fps-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.name-edit-form{display:flex;flex-direction:column;gap:var(--space-2)}.add-layer-btn{width:28px;height:28px;border:none;border-radius:var(--radius-full);background:var(--color-info);color:var(--color-white);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:1}.add-layer-btn:hover{background:var(--color-info-hover);transform:scale(1.05)}.add-layer-btn:active{transform:scale(.95)}.state-accordion-content{margin-top:var(--space-3);padding-top:var(--space-3);border-top:var(--border-width-thin) solid var(--border-light);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.layer-types-list h4{margin:0 0 var(--space-2) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-transform:uppercase}.layer-type-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1);background:var(--bg-secondary);border-radius:var(--radius-base);transition:background-color var(--transition-base)}.layer-type-item:hover{background:var(--bg-hover)}.layer-type-name{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-medium);flex:1}.layer-type-name.clickable{cursor:pointer;transition:color .2s ease;flex:0 0 auto;width:auto;max-width:-moz-fit-content;max-width:fit-content}.layer-type-name.clickable:hover{color:var(--color-primary);text-decoration:underline}.layer-name-input{flex:1;padding:var(--space-1) var(--space-2);border:var(--border-width-thin) solid var(--color-primary);border-radius:var(--radius-base);font-size:var(--font-size-sm);font-family:var(--font-primary);color:var(--text-primary);background:var(--bg-primary);font-weight:var(--font-weight-medium)}.layer-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.layer-type-controls{display:flex;align-items:center;gap:var(--space-2)}.zindex-label{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.zindex-input{width:50px;padding:4px var(--space-1);border:var(--border-width-thin) solid var(--border-medium);border-radius:var(--radius-base);font-size:var(--font-size-xs);text-align:center;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-primary)}.zindex-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.zindex-input:hover{border-color:var(--color-primary)}.empty-layers{padding:var(--space-4);text-align:center;color:var(--text-secondary);font-size:var(--font-size-sm);font-style:italic}.empty-layers p{margin:0}.add-layer-container{position:relative}.add-layer-menu{position:absolute;top:var(--space-10);right:0;background:var(--color-white);border:2px solid var(--color-info);border-radius:var(--radius-lg);padding:var(--space-3);min-width:250px;box-shadow:0 4px 12px #00000026;z-index:100}.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-gray-300)}.menu-header span{font-weight:600;color:var(--color-gray-700)}.close-menu-btn{width:20px;height:20px;border:none;background:transparent;cursor:pointer;font-size:14px;color:var(--color-gray-600)}.close-menu-btn:hover{color:var(--color-gray-700)}.default-types-section{margin-bottom:var(--space-3)}.default-types-section h4{margin:0 0 var(--space-2) 0;color:var(--color-gray-600);font-size:12px;text-transform:uppercase;font-weight:600}.layer-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:var(--space-1)}.layer-type-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--color-gray-300);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:11px;cursor:pointer;transition:all .2s ease}.layer-type-btn:hover{background:var(--color-gray-200);border-color:var(--color-gray-500)}.custom-type-section h4{margin:0 0 var(--space-2) 0;color:var(--color-gray-600);font-size:12px;text-transform:uppercase;font-weight:600}.custom-layer-form{display:flex;flex-direction:column;gap:var(--space-2)}.custom-type-input{width:100%;padding:6px var(--space-2);border:1px solid var(--color-gray-400);border-radius:var(--radius-base);font-size:12px}.custom-type-input:focus{outline:none;border-color:var(--color-info);box-shadow:0 0 0 2px #17a2b840}.custom-actions{display:flex;gap:var(--space-1)}.add-custom-btn{padding:6px var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:12px;cursor:pointer;transition:all .2s ease}.add-custom-btn:hover{background:var(--color-gray-200);border-color:var(--color-gray-500)}.remove-layer-type-btn{width:24px;height:24px;border:none;border-radius:var(--radius-base);background:transparent;cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-base)}.remove-layer-type-btn:hover{background:var(--color-error-light)}.export-layer-btn,.export-all-states-btn,.export-spritesheet-btn,.export-spritesheet-all-btn{width:24px;height:24px;border:none;border-radius:var(--radius-base);cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);background:transparent}.export-layer-btn:hover{background:var(--color-success-light);transform:scale(1.1)}.export-all-states-btn:hover{background:var(--color-info-light);transform:scale(1.1)}.export-spritesheet-btn:hover{background:var(--color-warning-light);transform:scale(1.1)}.export-spritesheet-all-btn:hover{background:var(--color-primary-light);transform:scale(1.1)}.state-tab-view{display:flex;flex-direction:column;background-color:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);overflow:visible;position:relative;z-index:1}.tab-bar{display:flex;align-items:flex-end;gap:var(--space-1);padding:var(--space-2) var(--space-2) 0 var(--space-2);overflow-x:auto;overflow-y:hidden;background-color:var(--color-bg-tertiary)}.tab-bar::-webkit-scrollbar{height:4px}.tab-bar::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}.tab-bar::-webkit-scrollbar-thumb{background:var(--color-border-secondary);border-radius:var(--radius-sm)}.tab{position:relative;display:flex;align-items:center;gap:var(--space-2);min-width:120px;max-width:200px;height:32px;padding:0 var(--space-3);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;cursor:pointer;transition:all .2s ease;color:var(--color-text-secondary);font-size:var(--font-size-base);-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.tab:hover:not(.active){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.tab.active{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border-focus);border-bottom-color:var(--color-bg-secondary);z-index:1;font-weight:var(--font-weight-medium)}.tab-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background-color:var(--color-bg-tertiary);padding:2px var(--space-2);border-radius:var(--radius-full);min-width:20px;text-align:center;font-weight:var(--font-weight-medium)}.tab.active .tab-meta{background-color:var(--color-primary-light);color:var(--color-primary)}.tab-close{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background-color:transparent;border:none;border-radius:var(--radius-base);color:var(--color-text-tertiary);font-size:18px;line-height:1;cursor:pointer;transition:all .2s ease}.tab-close:hover{background-color:var(--color-error-light);color:var(--color-error)}.tab-edit-input{flex:1;background-color:var(--color-bg-primary);border:1px solid var(--color-border-focus);border-radius:var(--radius-base);padding:2px var(--space-2);color:var(--color-text-primary);font-size:var(--font-size-base);outline:none}.tab-add{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background-color:transparent;border:1px solid var(--color-border-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;color:var(--color-text-secondary);font-size:18px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.tab-add:hover{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.tab-content{padding:var(--space-4);background-color:var(--color-bg-secondary);flex:1;overflow-y:auto;min-height:200px}.state-info-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.state-details{display:flex;flex-direction:column;gap:var(--space-1)}.state-name-display{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.state-meta-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.fps-display{color:var(--color-primary);font-weight:var(--font-weight-medium);margin-left:var(--space-1)}.state-action-buttons{display:flex;gap:var(--space-2)}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-base);font-size:16px;cursor:pointer;transition:all .2s ease}.action-btn:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.action-btn.danger:hover{background-color:var(--color-error-light);border-color:var(--color-error)}.layer-types-section{margin-top:var(--space-3)}.layer-types-section h4{margin:0 0 var(--space-3) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.empty-message{padding:var(--space-4);text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-style:italic}.layer-types-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto}.layer-type-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);transition:all .2s ease}.layer-type-item:hover{border-color:var(--color-border-focus);box-shadow:var(--shadow-sm)}.layer-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:1}.layer-controls{display:flex;align-items:center;gap:var(--space-2)}.zindex-control{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.layer-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background-color:transparent;border:1px solid var(--color-border-primary);border-radius:var(--radius-base);font-size:14px;cursor:pointer;transition:all .2s ease}.layer-action-btn:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.zindex-input{width:60px;padding:var(--space-1) var(--space-2);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-base);color:var(--color-text-primary);font-size:var(--font-size-sm);text-align:center}.zindex-input:focus{outline:none;border-color:var(--color-border-focus);background-color:var(--color-bg-primary)}.animation-data-manager{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-top:var(--spacing-md)}.data-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border-primary)}.data-manager-header h3{margin:0;font-size:var(--font-size-md);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.header-buttons{display:flex;gap:var(--spacing-sm)}.save-template-btn{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast);white-space:nowrap}.save-template-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.save-template-btn:disabled{background-color:var(--color-bg-tertiary);cursor:not-allowed;opacity:.5}.spritesheet-btn{background-color:var(--color-secondary)}.spritesheet-btn:hover:not(:disabled){background-color:var(--color-secondary-hover)}.templates-container{overflow:visible;max-width:100%}.empty-templates,.loading-templates{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.empty-templates p,.loading-templates p{margin:var(--spacing-sm) 0}.error-message{background-color:var(--color-error-light);color:var(--color-error);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);text-align:center;border:1px solid var(--color-error)}.templates-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--spacing-sm);overflow-x:hidden;max-width:100%;box-sizing:border-box}.template-item{background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-sm);transition:border-color var(--transition-fast);min-width:0;box-sizing:border-box}.template-item:hover{border-color:var(--color-primary)}.template-thumb{width:100%;height:80px;background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;overflow:hidden}.template-thumb img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;image-rendering:pixelated}.template-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.template-name{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-name.clickable{cursor:pointer;transition:color var(--transition-fast)}.template-name.clickable:hover{color:var(--color-primary)}.full-state-badge{font-size:var(--font-size-sm)}.template-name-input,.template-layertype-input{width:100%;padding:var(--spacing-xs);background-color:var(--color-bg-secondary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm)}.template-layertype-input{font-size:var(--font-size-xs);padding:2px var(--spacing-xs)}.template-meta{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary);align-items:center}.template-id{font-family:var(--font-family-mono)}.template-frames{color:var(--color-primary)}.template-type{color:var(--color-warning);font-weight:var(--font-weight-medium)}.template-type.clickable{cursor:pointer;transition:color var(--transition-fast)}.template-type.clickable:hover{color:var(--color-primary);text-decoration:underline}.template-states{color:var(--color-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs)}.template-tag{padding:2px var(--spacing-xs);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.tag-layer-single{background-color:var(--color-success-light);color:var(--color-success)}.tag-layer-archive{background-color:var(--color-info-light);color:var(--color-info)}.tag-layer-full{background-color:var(--color-warning-light);color:var(--color-warning)}.tag-spritesheet{background-color:var(--color-secondary-light);color:var(--color-secondary)}.template-actions{display:flex;gap:var(--spacing-xs);justify-content:center;margin-top:auto}.template-actions button{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition-fast);min-width:32px}.template-actions button:hover{background-color:var(--color-bg-hover)}.apply-btn:hover{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important}.rename-btn:hover{background-color:var(--color-warning)!important;border-color:var(--color-warning)!important;color:#fff!important}.delete-btn:hover{background-color:var(--color-error)!important;border-color:var(--color-error)!important;color:#fff!important}.templates-container::-webkit-scrollbar{width:8px}.templates-container::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-full)}.templates-container::-webkit-scrollbar-thumb{background:var(--color-border-secondary);border-radius:var(--radius-full)}.templates-container::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.template-state-pack{background:var(--color-primary-light);color:var(--color-primary);padding:2px var(--spacing-xs);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.template-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border-primary);flex-wrap:wrap}.tab-btn{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast);text-transform:capitalize}.tab-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.tab-btn.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.animation-preview-controls{background:var(--color-gray-50);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);padding:var(--space-2);margin-bottom:var(--space-3)}.controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.header-controls{display:flex;align-items:center;gap:var(--space-2)}.controls-title{font-size:12px;font-weight:600;color:var(--color-gray-700)}.frame-counter{font-size:11px;color:var(--color-gray-600);background:var(--color-white);padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--color-gray-300)}.controls-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-1);flex-wrap:wrap}.playback-controls{display:flex;gap:var(--space-1);align-items:center}.control-btn{width:28px;height:28px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.control-btn:hover:not(:disabled){background:var(--color-gray-200);border-color:var(--color-gray-500)}.control-btn:disabled{opacity:.5;cursor:not-allowed}.play-btn.playing{background:var(--color-success);color:var(--color-white);border-color:var(--color-success)}.play-btn.playing:hover{background:var(--color-success-hover);border-color:#1e7e34}.framerate-control{display:flex;align-items:center;gap:var(--space-1)}.framerate-control label{font-size:11px;color:var(--color-gray-600);font-weight:500}.fps-input{width:40px;height:24px;padding:2px var(--space-1);border:1px solid var(--color-gray-400);border-radius:var(--radius-sm);font-size:11px;text-align:center}.fps-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring)}.zoom-btn{background:var(--color-info);color:var(--color-white);border-color:var(--color-info);font-size:14px;width:32px;transition:all .2s ease}.zoom-btn:hover{background:var(--color-info-hover);border-color:#117a8b}.zoom-btn.zoomed{background:#e74c3c;border-color:#e74c3c;box-shadow:0 0 8px #e74c3c4d}.zoom-btn.zoomed:hover{background:#c0392b;border-color:#a93226}.no-animation-message{text-align:center;color:var(--color-gray-600);font-size:11px;padding:var(--space-2);background:var(--color-white);border-radius:var(--radius-base);border:1px solid var(--color-gray-300)}.zoom-control{display:flex;align-items:center;gap:var(--space-1);padding:2px var(--space-1);background:#0000000d;border-radius:var(--radius-base)}.zoom-label{font-size:10px;font-weight:600;color:#2c3e50;min-width:50px;var(--color-white)-space: nowrap}.zoom-slider{width:60px;height:6px;background:#ddd;border-radius:var(--radius-sm);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#3498db;border-radius:var(--radius-full);cursor:pointer;-webkit-transition:background .2s ease;transition:background .2s ease}.zoom-slider::-webkit-slider-thumb:hover{background:#2980b9;transform:scale(1.1)}.zoom-slider::-moz-range-thumb{width:16px;height:16px;background:#3498db;border-radius:var(--radius-full);cursor:pointer;border:none;-moz-transition:background .2s ease;transition:background .2s ease}.zoom-slider::-moz-range-thumb:hover{background:#2980b9;transform:scale(1.1)}.zoom-reset-btn{background:#95a5a6;border:none;border-radius:var(--radius-base);padding:var(--space-1) var(--space-2);color:var(--color-white);cursor:pointer;font-size:14px;font-weight:700;transition:all .2s ease;min-width:28px;height:28px;display:flex;align-items:center;justify-content:center}.zoom-reset-btn:hover{background:#7f8c8d;transform:translateY(-1px)}.zoom-reset-btn:active{transform:translateY(0)}.bg-color-control{display:flex;align-items:center}.bg-color-control label{display:none}.bg-color-input{width:28px;height:28px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);cursor:pointer;background:transparent;padding:0}.bg-color-input:hover{border-color:var(--color-primary)}.bg-color-input::-webkit-color-swatch-wrapper{padding:2px}.bg-color-input::-webkit-color-swatch{border:none;border-radius:2px}.bg-color-input::-moz-color-swatch{border:none;border-radius:2px}.export-gif-btn{background:var(--color-success);color:var(--color-white);border-color:var(--color-success);font-size:12px;width:28px;height:28px;transition:all .2s ease}.export-gif-btn:hover:not(:disabled){background:var(--color-success-hover);border-color:#1e7e34}.export-gif-btn:disabled{background:var(--color-gray-600);cursor:not-allowed;opacity:.6}.display-options{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-gray-300)}.option-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--color-gray-700)}.option-label input[type=checkbox]{cursor:pointer}.zoom-control{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-gray-700)}.zoom-input{width:60px;padding:4px 8px;background:var(--color-white);border:1px solid var(--color-gray-400);border-radius:var(--radius-sm);color:var(--color-gray-700);font-size:12px}.zoom-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring)}.icon-toggle{display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);background:var(--color-white);border:1px solid var(--color-gray-300);transition:all .2s}.icon-toggle:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.icon-toggle .icon{font-size:14px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.icon-toggle input[type=checkbox]{width:14px;height:14px;cursor:pointer;margin:0}.zoom-control-compact{display:flex;align-items:center;gap:2px;font-size:11px}.zoom-input-compact{width:45px;padding:2px 4px;border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);font-size:11px;text-align:center}.center-control-compact{display:flex;align-items:center;gap:2px;font-size:11px}.center-control-compact label{font-size:11px;color:var(--color-text-secondary, #6b7280);margin:0}.center-input-compact{width:50px;padding:2px 4px;border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);font-size:11px;text-align:center}.bg-color-input-compact{width:24px;height:24px;border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);cursor:pointer;padding:0}.control-btn-compact{width:24px;height:24px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);background:var(--color-white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s}.control-btn-compact:hover:not(:disabled){background:var(--color-gray-100);border-color:var(--color-gray-500)}.control-btn-compact:disabled{opacity:.5;cursor:not-allowed}.clear-all-btn{color:var(--color-error, #ef4444)}.clear-all-btn:hover:not(:disabled){background:var(--color-error-light, #fee2e2);border-color:var(--color-error, #ef4444)}.frame-list{display:flex;flex-direction:column;height:100%;padding:var(--space-4);background:var(--color-gray-50);border-radius:var(--radius-lg)}.frame-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-gray-200)}.frame-list-header h3{margin:0;color:var(--text-primary);font-size:18px;font-weight:600}.frame-list-header{position:relative}.add-layer-btn{height:28px;border:none;border-radius:var(--radius-base);background:var(--color-primary);color:var(--color-white);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0 var(--space-2)}.add-layer-btn:hover{background:var(--color-primary-hover);transform:scale(1.05)}.add-frame-btn,.add-multiple-btn{height:28px;border:none;border-radius:var(--radius-base);background:var(--color-success);color:var(--color-white);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0 var(--space-2)}.add-frame-btn:hover,.add-multiple-btn:hover{background:var(--color-success-hover);transform:scale(1.05)}.add-layer-menu{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);box-shadow:0 4px 12px #00000026;padding:var(--spacing-md);min-width:280px;max-width:400px;z-index:1000}.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border-primary)}.menu-header span{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.close-menu-btn{background:none;border:none;font-size:18px;cursor:pointer;color:var(--color-text-secondary);padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.close-menu-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.default-types-section,.custom-type-section{margin-bottom:var(--spacing-md)}.default-types-section h4,.custom-type-section h4{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-sm) 0;font-weight:var(--font-weight-medium)}.layer-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.layer-type-btn{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);transition:all var(--transition-fast)}.layer-type-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.custom-layer-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.custom-type-input{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary)}.custom-type-input:focus{outline:none;border-color:var(--color-primary)}.custom-actions{display:flex;gap:var(--spacing-sm)}.save-btn,.cancel-btn{flex:1;padding:var(--spacing-sm);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.save-btn{background:var(--color-primary);color:#fff}.save-btn:hover:not(:disabled){background:var(--color-primary-hover)}.save-btn:disabled{opacity:.5;cursor:not-allowed}.cancel-btn{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.cancel-btn:hover{background:var(--color-bg-hover)}.add-custom-btn{width:100%;padding:var(--spacing-sm);background:var(--color-bg-secondary);border:1px dashed var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:all var(--transition-fast)}.add-custom-btn:hover{background:var(--color-bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.animation-info{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.info-item{display:flex;justify-content:space-between;align-items:center;font-size:12px}.no-state-selected{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--color-gray-600)}.frames-container{flex:1;overflow-y:auto}.empty-frames{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-gray-600)}.empty-frames p{margin:var(--space-2) 0}.add-first-frame-btn{margin-top:var(--space-4);padding:var(--space-3) 2var(--space-1);border:none;border-radius:var(--radius-md);background:var(--color-success);color:var(--color-white);font-weight:600;cursor:pointer;transition:background-color .2s ease}.add-first-frame-btn:hover{background:var(--color-success-hover)}.frames-grid{display:flex;flex-direction:row;gap:var(--space-2);overflow-x:auto;overflow-y:hidden;padding-bottom:var(--space-2)}.frame-item{position:relative;padding:var(--space-1);background:var(--color-white);border:2px solid var(--color-gray-200);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.frame-item:hover{border-color:var(--color-gray-500);box-shadow:0 2px 4px #0000001a}.frame-item.active{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 2px 8px var(--shadow-primary)}.frame-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-1);margin-bottom:var(--space-1);background:var(--color-gray-100);border-radius:var(--radius-sm)}.frame-title{font-size:11px;font-weight:600;color:var(--text-primary)}.frame-controls{display:flex;gap:2px;align-items:center}.move-frame-btn,.delete-frame-btn{padding:2px 6px;border:none;border-radius:var(--radius-sm);background:var(--color-gray-200);color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .2s ease;line-height:1}.move-frame-btn:hover:not(:disabled){background:var(--color-primary);color:#fff;transform:scale(1.1)}.move-frame-btn:disabled{opacity:.3;cursor:not-allowed}.delete-frame-btn:hover{background:var(--color-danger);color:#fff;transform:scale(1.1)}.frame-number{position:absolute;top:2px;left:2px;background:#000000b3;color:var(--color-white);font-size:8px;font-weight:700;padding:1px var(--space-1);border-radius:var(--radius-sm);z-index:2}.frame-thumbnail{position:relative;width:100%;height:50px;margin-bottom:var(--space-1);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-gray-50);border:1px solid var(--color-gray-300)}.frame-info{margin-bottom:var(--space-1)}.duration-display{text-align:center;font-size:10px;font-weight:600;color:var(--text-primary);padding:2px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s ease}.duration-display:hover{background:var(--color-gray-200)}.duration-edit{display:flex;flex-direction:column;gap:var(--space-1)}.duration-input{width:100%;padding:var(--space-1) 6px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);font-size:12px;text-align:center}.duration-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring)}.edit-actions{display:flex;gap:var(--space-1);justify-content:center}.save-btn,.cancel-btn{width:20px;height:20px;border:none;border-radius:var(--radius-sm);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.save-btn{background:var(--color-success);color:var(--color-white)}.save-btn:hover{background:var(--color-success-hover)}.cancel-btn{background:var(--color-gray-600);color:var(--color-white)}.cancel-btn:hover{background:var(--color-gray-700)}.frame-actions{display:flex;gap:var(--space-1);justify-content:center}.duplicate-btn,.remove-btn{width:18px;height:18px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.duplicate-btn:hover{background:var(--color-gray-200)}.remove-btn:hover{background:var(--color-error-light)}.frame-timeline{margin-top:var(--space-4);padding:var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.frame-timeline h4{margin:0 0 var(--space-2) 0;color:var(--color-gray-700);font-size:14px;font-weight:600}.timeline-bar{display:flex;height:24px;background:var(--color-gray-50);border:1px solid var(--color-gray-300);border-radius:var(--radius-base);overflow:hidden;margin-bottom:var(--space-2)}.timeline-segment{display:flex;align-items:center;justify-content:center;background:var(--color-gray-200);border-right:1px solid var(--color-gray-300);cursor:pointer;transition:background-color .2s ease;min-width:20px}.timeline-segment:hover{background:var(--color-gray-500)}.timeline-segment.active{background:var(--color-primary);color:var(--color-white)}.timeline-segment:last-child{border-right:none}.segment-label{font-size:10px;font-weight:700}.timeline-info{display:flex;justify-content:space-between;font-size:11px;color:var(--color-gray-600)}@media(max-width:768px){.frame-list{padding:var(--space-3)}.frame-item{min-width:250px;padding:6px}.animation-info{grid-template-columns:1fr;gap:var(--space-1)}}/ * Frame with integrated layers */ .frame-item{min-width:300px;flex-shrink:0;margin-bottom:var(--space-5);border-radius:var(--radius-xl);border:2px solid var(--color-gray-300);background:var(--color-white);box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.frame-item.active{border-color:var(--color-primary);box-shadow:0 4px 16px var(--shadow-primary)}.frame-item.expanded{border-color:var(--color-success);box-shadow:0 6px 20px #28a74533}.frame-header{padding:10px;cursor:pointer;background:linear-gradient(135deg,var(--color-gray-50) 0%,var(--color-gray-200) 100%);border-bottom:2px solid var(--color-gray-300)}.frame-title-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.frame-title{margin:0;font-size:18px;font-weight:700;color:var(--color-gray-700)}.frame-actions{display:flex;gap:var(--space-2)}.layer-count{position:absolute;bottom:var(--space-1);right:var(--space-1);background:#000c;color:var(--color-white);font-size:10px;padding:2px 6px;border-radius:var(--radius-base);font-weight:600}.frame-info-section{margin-bottom:var(--space-4)}.frame-stats{display:flex;flex-direction:column;gap:6px}.stat-row{display:flex;justify-content:center;font-size:12px;color:var(--color-gray-600)}.stat-row strong{color:var(--color-gray-700)}.frame-duration-section{display:flex;justify-content:center;margin-bottom:var(--space-3)}.duration-display{background:var(--color-gray-200);border:2px solid var(--color-gray-400);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);font-size:14px;font-weight:600;color:var(--color-gray-700);cursor:pointer;transition:all .2s ease}.duration-edit{display:flex;flex-direction:column;gap:var(--space-2);align-items:center}.duration-input{width:120px;padding:var(--space-2) var(--space-3);border:2px solid var(--color-gray-400);border-radius:var(--radius-md);font-size:14px;text-align:center;font-weight:600}.duration-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--focus-ring)}.edit-actions{display:flex;gap:var(--space-2)}.drag-handle{text-align:center;background:#000c;color:var(--color-white);font-size:12px;padding:6px var(--space-3);border-radius:var(--radius-md);cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:600}.expand-btn{width:24px;height:24px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.expand-btn:hover{background:var(--color-gray-200);border-color:var(--color-gray-500)}.frame-layers{background:var(--color-white);padding:0;border-radius:0 0 var(--radius-xl) 12px}.layers-list{display:flex;flex-direction:column;gap:var(--space-3)}.layer-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);border:2px solid var(--color-gray-300);border-radius:var(--radius-lg);background:var(--color-gray-50);cursor:pointer;transition:all .2s ease}.layer-item:hover{background:var(--color-gray-200);border-color:var(--color-gray-500)}.layer-item.active{background:#d4edda!important;border-color:#28a745!important;box-shadow:0 0 0 3px #28a74533!important}.layer-info{display:flex;justify-content:space-between;align-items:center}.layer-type{font-size:11px;font-weight:600;color:var(--color-gray-700)}.layer-position{font-size:10px;color:var(--color-gray-600)}.layer-content{display:flex;align-items:center;gap:var(--space-1)}.layer-thumbnail{flex-shrink:0}.layer-image-container{position:relative;width:100px;height:50px;border:2px solid var(--color-gray-300);border-radius:var(--radius-md);overflow:hidden;background:var(--color-gray-50)}.layer-image{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.image-overlay{position:absolute;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;gap:var(--space-1);opacity:0;transition:opacity .2s ease}.change-image-btn,.delete-image-btn{width:16px;height:16px;border:none;border-radius:2px;background:#ffffffe6;font-size:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.change-image-btn:hover{background:var(--color-primary);color:var(--color-white)}.delete-image-btn:hover{background:var(--color-error);color:var(--color-white)}.no-image-container{width:100px;height:75px;border:2px dashed var(--color-gray-400);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:#fafafa}.no-image-placeholder{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:8px;color:var(--color-gray-600)}.upload-image-btn{font-size:8px;padding:2px var(--space-1);border:1px solid var(--color-gray-400);border-radius:2px;background:var(--color-white);color:var(--color-gray-700);cursor:pointer;transition:all .2s ease}.upload-image-btn:hover{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.frame-thumbnail{width:80px!important;height:60px!important;border:2px solid var(--color-gray-300);border-radius:var(--radius-md);overflow:hidden;position:relative;background:var(--color-gray-50)}.thumbnail-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.layer-count{position:absolute;bottom:2px;right:2px;background:#000c;color:var(--color-white);font-size:8px;padding:2px var(--space-1);border-radius:2px}.duration-display{background:var(--color-gray-200);border:1px solid var(--color-gray-400);border-radius:var(--radius-base);padding:6px var(--space-3);font-size:12px;font-weight:600;color:var(--color-gray-700);cursor:pointer;transition:all .2s ease;min-width:100px;text-align:center}.duration-display:hover{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.frame-number{background:var(--color-primary);color:var(--color-white);font-size:12px;font-weight:700;padding:var(--space-1) var(--space-2);border-radius:var(--radius-base);min-width:30px;text-align:center}.frame-actions{display:flex;gap:var(--space-1);align-items:center}.frame-actions button{width:28px;height:28px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);background:var(--color-white);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.frame-actions button:hover{background:var(--color-gray-200);border-color:var(--color-gray-500)}.expand-btn.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.frame-stats{display:flex;flex-direction:column;gap:var(--space-1)}.stat-item{font-size:11px;color:var(--color-gray-600);padding:2px 0}.stat-item strong{color:var(--color-gray-700)}.frame-number{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:var(--color-white);font-size:14px;font-weight:700;padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);text-align:center;box-shadow:0 2px 4px #007bff4d}.frame-controls{display:flex;align-items:center;gap:var(--space-2)}.drag-handle{background:#000c;color:var(--color-white);font-size:12px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-base);cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.layer-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.layer-info{width:100%;text-align:center;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-gray-200)}.layer-type{font-size:12px;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.5px}.layer-position{font-size:10px;color:var(--color-gray-600);margin-top:2px}.upload-image-btn{font-size:10px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-primary);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-primary);cursor:pointer;transition:all .2s ease;font-weight:600}.no-image-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;color:var(--color-gray-600);text-align:center}.no-image-placeholder span{font-weight:600;color:var(--color-gray-700)}.image-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;gap:var(--space-2);opacity:0;transition:opacity .2s ease;border-radius:var(--radius-md)}.change-image-btn,.delete-image-btn{width:24px;height:24px;border:none;border-radius:var(--radius-base);background:#ffffffe6;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}@media(max-width:768px){.frame-item{min-width:220px}.layers-list{grid-template-columns:1fr}.frame-header-middle{flex-direction:column;gap:var(--space-2)}}.frame-actions button{width:32px;height:32px;border:2px solid var(--color-gray-400);border-radius:var(--radius-md);background:var(--color-primary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-weight:600}.frame-actions button:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.expand-btn{background:var(--color-gray-50);border-color:var(--color-gray-600)}.expand-btn:hover,.expand-btn.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.duplicate-btn:hover{background:var(--color-success);color:var(--color-white);border-color:var(--color-success)}.remove-btn:hover{background:var(--color-error);color:var(--color-white);border-color:var(--color-error)}.save-btn{width:28px;height:28px;background:var(--color-success);color:var(--color-white);border-color:var(--color-success);border-radius:var(--radius-base);font-size:12px}.save-btn:hover{background:var(--color-success-hover);border-color:#1e7e34}.cancel-btn{width:28px;height:28px;background:var(--color-error);color:var(--color-white);border-color:var(--color-error);border-radius:var(--radius-base);font-size:12px}.cancel-btn:hover{background:var(--color-error-hover);border-color:#bd2130}.layer-info{flex:1;display:flex;flex-direction:column;gap:var(--space-1);text-align:left}.layer-name{font-size:1var(--space-1);font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.5px}.layer-details{display:flex;flex-direction:column;gap:2px}.layer-position,.layer-pivot{font-size:11px;color:var(--color-gray-600);font-family:monospace}.no-image-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);font-size:8px;color:var(--color-gray-600);text-align:center}.no-image-placeholder span{font-weight:600;color:var(--color-gray-700);font-size:7px}.upload-image-btn{font-size:8px;padding:2px var(--space-1);border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-primary);cursor:pointer;transition:all .2s ease;font-weight:600}.upload-image-btn:hover{background:var(--color-primary);color:var(--color-white)}.image-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;gap:var(--space-1);opacity:0;transition:opacity .2s ease;border-radius:var(--radius-base)}.layer-image-container:hover .image-overlay{opacity:1}.change-image-btn,.delete-image-btn{width:20px;height:20px;border:none;border-radius:var(--radius-sm);background:#ffffffe6;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.change-image-btn:hover{background:var(--color-primary);color:var(--color-white);transform:scale(1.1)}.frame-actions-section{padding:10px 0;background:var(--color-gray-50);border-top:1px solid var(--color-gray-300);display:flex;justify-content:center;gap:var(--space-3)}.frame-actions-section .duplicate-btn,.frame-actions-section .remove-btn{width:40px;height:32px;border:2px solid var(--color-gray-400);border-radius:var(--radius-md);background:var(--color-white);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.frame-actions-section .duplicate-btn:hover{background:var(--color-success);color:var(--color-white);border-color:var(--color-success);transform:translateY(-1px)}.frame-actions-section .remove-btn:hover{background:var(--color-error);color:var(--color-white);border-color:var(--color-error);transform:translateY(-1px)}.layer-info-single-column{width:100%;text-align:center;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-gray-200)}.layer-info-single-column .layer-name{font-size:14px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1)}.layer-info-single-column .layer-details{display:flex;flex-direction:row;gap:var(--space-3, 12px);align-items:center;flex-wrap:nowrap;margin-top:var(--space-1, 4px)}.layer-info-single-column .layer-position,.layer-info-single-column .layer-pivot{font-size:11px;color:var(--color-gray-600);font-family:monospace;white-space:nowrap}.layer-thumbnail-single-column{width:100%;display:flex;justify-content:center}.duration-edit-inline{display:flex;align-items:center;gap:var(--space-2)}.duration-input-inline{width:80px;padding:6px var(--space-2);border:2px solid var(--color-gray-400);border-radius:var(--radius-base);font-size:12px;text-align:center;font-weight:600}.duration-input-inline:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring)}.save-btn-inline,.cancel-btn-inline{width:32px;height:32px;border:2px solid var(--color-gray-400);border-radius:var(--radius-base);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-weight:600}.save-btn-inline{background:var(--color-success);color:var(--color-white);border-color:var(--color-success)}.save-btn-inline:hover{background:var(--color-success-hover);border-color:#1e7e34}.cancel-btn-inline{background:var(--color-error);color:var(--color-white);border-color:var(--color-error)}.cancel-btn-inline:hover{background:var(--color-error-hover);border-color:#bd2130}.duration-btn{padding:0;border:2px solid var(--color-gray-400);border-radius:var(--radius-md);background:var(--color-white);font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:var(--space-1);transition:all .2s ease;color:var(--color-gray-700)}.duration-btn:hover{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary);transform:translateY(-1px)}.drag-handle{display:none}.layer-image-container img{-o-object-fit:contain;object-fit:contain}/ * Custom scrollbar for frames-grid horizontal scroll */ .frames-grid::-webkit-scrollbar{height:8px}.frames-grid::-webkit-scrollbar-track{background:#f1f1f1;border-radius:var(--radius-base)}.frames-grid::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:var(--radius-base)}.frames-grid::-webkit-scrollbar-thumb:hover{background:#a8a8a8}/ * Clickable image styling */ .clickable-image{cursor:pointer;transition:transform .2s ease,filter .2s ease}.clickable-image:hover{transform:scale(1.05);filter:brightness(1.1)}/ * Pivot edit frame for active layer */ .layer-image-container.pivot-edit-active{border:2px solid var(--color-success);box-shadow:0 0 10px #28a74580;position:relative}.pivot-edit-frame{position:absolute;inset:0;pointer-events:none;z-index:10}.pivot-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pivot-crosshair-h{position:absolute;width:20px;height:1px;background:var(--color-success);top:0;left:-10px}.pivot-crosshair-v{position:absolute;width:1px;height:20px;background:var(--color-success);left:0;top:-10px}.pivot-dot{position:absolute;width:4px;height:4px;background:var(--color-success);border-radius:var(--radius-full);top:-2px;left:-2px;box-shadow:0 0 4px #28a745cc}.pivot-edit-label{position:absolute;top:2px;left:2px;background:#28a745e6;color:var(--color-white);font-size:8px;padding:1px var(--space-1);border-radius:2px;font-weight:600;text-transform:uppercase}/ * Animation for pivot edit frame */ @keyframes pivotPulse{0%{opacity:.7}50%{opacity:1}100%{opacity:.7}}.pivot-dot{animation:pivotPulse 1.5s infinite}.pivot-edit-label{animation:pivotPulse 2s infinite}.copy-layer-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--color-success);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-success);font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:28px}.copy-layer-btn:hover{background:var(--color-success);color:var(--color-white);transform:scale(1.1)}.no-image-placeholder{display:flex!important;flex-direction:row!important;gap:var(--space-1)!important;align-items:center!important;justify-content:center!important;padding:var(--space-1)!important}.upload-image-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--color-info);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-info);font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:28px}.upload-image-btn:hover{background:var(--color-info);color:var(--color-white);transform:translateY(-1px)}.image-overlay{display:flex;gap:var(--space-1);align-items:center;justify-content:center}.change-image-btn{padding:6px 10px;border:none;border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:14px;cursor:pointer;transition:all .2s ease}.change-image-btn:hover{background:var(--color-info);color:var(--color-white);transform:scale(1.1)}.delete-image-btn{padding:6px 10px;border:none;border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:14px;cursor:pointer;transition:all .2s ease}.delete-image-btn:hover{background:var(--color-error);color:var(--color-white);transform:scale(1.1)}.blend-mode-toggle{display:inline-flex;align-items:center;gap:2px;margin-left:6px;cursor:pointer;font-size:11px}.blend-mode-toggle input[type=checkbox]{width:12px;height:12px;cursor:pointer}.blend-mode-label{font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flip-toggle{display:inline-flex;align-items:center;gap:2px;margin-left:4px;cursor:pointer;font-size:11px}.flip-toggle input[type=checkbox]{width:12px;height:12px;cursor:pointer}.flip-label{font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.layer-name{display:flex;align-items:center;justify-content:flex-start;gap:4px}.confirm-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;width:90%;box-shadow:0 10px 40px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-dialog h3{margin:0 0 var(--space-4) 0;color:var(--color-gray-900);font-size:18px;font-weight:600}.confirm-dialog p{margin:0 0 var(--space-6) 0;color:var(--color-gray-700);line-height:1.5}.confirm-dialog-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.confirm-btn-cancel,.confirm-btn-delete{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-base);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.confirm-btn-cancel{background:var(--color-gray-200);color:var(--color-gray-700)}.confirm-btn-cancel:hover{background:var(--color-gray-300)}.confirm-btn-delete{background:var(--color-error);color:var(--color-white)}.confirm-btn-delete:hover{background:var(--color-error-dark);transform:translateY(-1px);box-shadow:0 2px 8px #dc35454d}.layer-details{display:flex;flex-direction:row;gap:var(--space-3, 12px);align-items:center;flex-wrap:nowrap;margin-top:var(--space-1, 4px)}.layer-position,.layer-pivot{font-size:var(--font-size-xs, 11px);color:var(--color-text-secondary, #6b7280);white-space:nowrap;font-family:var(--font-family-mono, monospace)}.pivot-editor{display:flex;flex-direction:column;height:100%;padding:var(--space-4);background:var(--color-gray-50);border-radius:var(--radius-lg)}.pivot-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-gray-200)}.pivot-editor-header h3{margin:0;color:var(--color-gray-700);font-size:18px;font-weight:600}.layer-info{display:flex;align-items:center}.layer-name{padding:var(--space-1) var(--space-2);background:var(--color-primary);color:var(--color-white);border-radius:var(--radius-base);font-size:12px;font-weight:600;text-transform:capitalize}.no-layer-selected,.no-layer-data,.no-image{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--color-gray-600)}.no-layer-selected p,.no-layer-data p,.no-image p{margin:var(--space-2) 0}.canvas-container{position:relative;margin-bottom:var(--space-4);display:flex;flex-direction:column;align-items:center}.pivot-canvas{border:2px solid var(--color-gray-300);border-radius:var(--radius-lg);background:var(--color-white);cursor:crosshair;box-shadow:0 2px 4px #0000001a}.pivot-canvas:hover{border-color:var(--color-info)}.canvas-controls{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:6px var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.zoom-btn{width:28px;height:28px;border:none;border-radius:var(--radius-base);background:var(--color-gray-200);color:var(--color-gray-700);font-size:12px;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center}.zoom-btn:hover{background:var(--color-gray-500)}.zoom-level{font-size:12px;font-weight:600;color:var(--color-gray-700);min-width:40px;text-align:center}.pivot-controls{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-4)}.pivot-inputs{display:flex;gap:var(--space-3);padding:var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.input-group{display:flex;align-items:center;gap:6px}.input-group label{font-size:12px;font-weight:600;color:var(--color-gray-700);min-width:15px}.pivot-input{width:60px;padding:var(--space-1) 6px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);font-size:12px;text-align:center}.pivot-input:focus{outline:none;border-color:var(--color-info);box-shadow:0 0 0 2px #17a2b840}.arrow-controls{padding:var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.arrow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1);max-width:120px;margin:0 auto}.arrow-btn,.center-btn{width:32px;height:32px;border:1px solid var(--color-gray-300);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.arrow-btn:hover,.center-btn:hover{background:var(--color-gray-200);border-color:var(--color-gray-500)}.center-btn{background:var(--color-info);color:var(--color-white);border-color:var(--color-info)}.center-btn:hover{background:var(--color-info-hover);border-color:var(--color-info-hover)}.pivot-presets{padding:var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.presets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2);gap:var(--space-2)}.pivot-presets h4{margin:0;color:var(--color-gray-700);font-size:12px;font-weight:600;text-transform:uppercase}.apply-all-checkbox{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-gray-600);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.apply-all-checkbox input[type=checkbox]{cursor:pointer}.apply-all-checkbox:hover{color:var(--color-primary)}.apply-all-checkbox input[type=checkbox]:checked+span{color:var(--color-primary);font-weight:600}.presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1);max-width:120px;margin:0 auto}.preset-btn{width:32px;height:32px;border:1px solid var(--color-gray-300);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.preset-btn:hover{background:var(--color-gray-200);border-color:var(--color-gray-500)}.preset-btn.center{background:var(--color-success);color:var(--color-white);border-color:var(--color-success)}.preset-btn.center:hover{background:var(--color-success-hover);border-color:var(--color-success-hover)}.image-info{padding:var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:1px solid var(--color-gray-300)}.info-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px}.info-item:last-child{margin-bottom:0}.info-item .label{color:var(--color-gray-600);font-weight:500}.info-item .value{color:var(--color-gray-700);font-weight:600}@media(max-width:768px){.pivot-editor{padding:var(--space-3)}.pivot-inputs{flex-direction:column;gap:var(--space-2)}.input-group{justify-content:space-between}.pivot-input{width:80px}.arrow-grid,.presets-grid{max-width:100px}.arrow-btn,.center-btn,.preset-btn{width:28px;height:28px;font-size:12px}}.pivot-canvas{transition:border-color .2s ease}.arrow-btn:active,.center-btn:active,.preset-btn:active{transform:scale(.95)}.pivot-canvas:hover{cursor:crosshair}.pivot-canvas:active{cursor:grabbing}.pivot-editor-header.active{background:linear-gradient(135deg,var(--color-success),#20c997);color:var(--color-white);border-radius:var(--radius-lg) 8px 0 0;margin:-var(--space-4) -16px 16px -16px;padding:var(--space-4)}.pivot-editor-header.active h3{color:var(--color-white);margin:0 0 var(--space-2) 0}.pivot-editor-header.active .layer-name{color:#ffffffe6;font-weight:600}.pivot-editor-highlight{animation:pivotEditorHighlight 2s ease-in-out;border:2px solid var(--color-success);border-radius:var(--radius-lg);box-shadow:0 0 20px #28a74580}@keyframes pivotEditorHighlight{0%{box-shadow:0 0 #28a74580;border-color:transparent}50%{box-shadow:0 0 20px #28a745cc;border-color:var(--color-success)}to{box-shadow:0 0 #28a74580;border-color:transparent}}.collision-box-section{margin-top:var(--space-4);padding:var(--space-3);background:var(--color-white);border-radius:var(--radius-md);border:2px solid #ffc107;box-shadow:0 2px 4px #ffc1071a}.collision-box-section h4{margin:0 0 var(--space-3) 0;color:var(--color-gray-700);font-size:14px;font-weight:600}.collision-actions{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.collision-btn{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-base);background:var(--color-white);color:var(--color-gray-700);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:4px}.collision-btn:hover:not(:disabled){background:var(--color-gray-200);border-color:var(--color-gray-500);transform:translateY(-1px)}.collision-btn:active:not(:disabled){transform:translateY(0)}.collision-btn:disabled{opacity:.5;cursor:not-allowed}.collision-btn.auto-detect{background:#ffc107;color:var(--color-gray-900);border-color:#ffc107}.collision-btn.auto-detect:hover:not(:disabled){background:#ffb300;border-color:#ffb300}.collision-btn.copy-prev{background:var(--color-info);color:var(--color-white);border-color:var(--color-info)}.collision-btn.copy-prev:hover:not(:disabled){background:var(--color-info-hover);border-color:var(--color-info-hover)}.collision-btn.apply-all{background:var(--color-success);color:var(--color-white);border-color:var(--color-success)}.collision-btn.apply-all:hover:not(:disabled){background:var(--color-success-hover);border-color:var(--color-success-hover)}.collision-btn.clear{background:var(--color-danger);color:var(--color-white);border-color:var(--color-danger);margin-top:var(--space-2)}.collision-btn.clear:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.collision-inputs{display:flex;flex-direction:column;gap:var(--space-2)}.input-row{display:flex;gap:var(--space-3)}.collision-input{width:70px;padding:var(--space-1) 6px;border:1px solid var(--color-gray-400);border-radius:var(--radius-base);font-size:12px;text-align:center}.collision-input:focus{outline:none;border-color:#ffc107;box-shadow:0 0 0 2px #ffc10740}.no-collision{text-align:center;padding:var(--space-4);color:var(--color-gray-600)}.no-collision p{margin:var(--space-1) 0;font-size:12px}.no-collision .hint{color:var(--color-gray-500);font-size:11px;font-style:italic}.new-layout{display:grid;grid-template-columns:80px 1fr;height:100vh;background-color:var(--color-bg-secondary, #f9fafb);overflow:hidden}.new-layout.animation-mode{grid-template-columns:10px 1fr 1fr}.main-content{width:100%;height:100vh;overflow:hidden}.left-column{display:flex;flex-direction:column;height:100vh;overflow:hidden}.canvas-area{flex:0 0 50vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5, 20px);background-color:var(--color-bg-primary, #ffffff);overflow:hidden}.canvas-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.canvas-wrapper{position:relative;width:100%;height:100%;background-color:var(--color-bg-tertiary, #f3f4f6);border:1px solid var(--color-border-primary, #e5e7eb);border-radius:var(--radius-xl, 12px);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;align-items:center;justify-content:center}.panel-left{flex:1;display:flex;flex-direction:column;gap:var(--space-4, 15px);padding:var(--space-4, 15px);overflow:hidden;background-color:var(--color-bg-primary, #ffffff);border-top:1px solid var(--color-border-primary, #e5e7eb)}.controls-container{flex:0 0 10%;min-height:0;overflow:visible}.animation-preview-controls{display:flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-3, 12px);background-color:var(--color-bg-tertiary, #f3f4f6);border-radius:var(--radius-lg, 8px);border:1px solid var(--color-border-primary, #e5e7eb);flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}.animation-preview-controls::-webkit-scrollbar{height:4px}.animation-preview-controls::-webkit-scrollbar-track{background:var(--color-bg-tertiary, #f3f4f6)}.animation-preview-controls::-webkit-scrollbar-thumb{background:var(--color-border-secondary, #d1d5db);border-radius:2px}.animation-preview-controls .control-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.animation-preview-controls button{padding:var(--space-1, 6px) var(--space-2, 10px);min-width:32px;height:32px;font-size:var(--font-size-md, 14px);border-radius:var(--radius-md, 6px);border:1px solid var(--color-border-primary, #e5e7eb);background-color:var(--color-bg-primary, #ffffff);color:var(--color-text-primary, #111827);cursor:pointer;transition:all var(--transition-fast, .2s ease);flex-shrink:0;display:flex;align-items:center;justify-content:center}.animation-preview-controls button:hover:not(:disabled){background-color:var(--color-bg-hover, #f0f0f0);border-color:var(--color-border-secondary, #d1d5db)}.animation-preview-controls button:disabled{opacity:.4;cursor:not-allowed}.animation-preview-controls button.active{background-color:var(--color-primary-light, #dbeafe);border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.animation-preview-controls input[type=number],.animation-preview-controls input[type=range]{padding:var(--space-1, 4px) var(--space-2, 8px);height:32px;border-radius:var(--radius-md, 6px);border:1px solid var(--color-border-primary, #e5e7eb);background-color:var(--color-bg-primary, #ffffff);color:var(--color-text-primary, #111827);font-size:var(--font-size-sm, 12px);flex-shrink:0}.animation-preview-controls input[type=number]{width:60px}.animation-preview-controls input[type=range]{width:100px}.animation-preview-controls label{font-size:var(--font-size-xs, 11px);color:var(--color-text-secondary, #6b7280);white-space:nowrap;flex-shrink:0}.animation-preview-controls .divider{width:1px;height:24px;background-color:var(--color-border-primary, #e5e7eb);flex-shrink:0}.state-view-container{flex:0 0 90%;min-height:0;overflow-y:auto;overflow-x:hidden}.panel-right{display:flex;flex-direction:column;padding:var(--space-4, 15px);overflow-y:auto;overflow-x:hidden;background-color:var(--color-bg-primary, #ffffff);border-left:1px solid var(--color-border-primary, #e5e7eb)}.frame-list-container{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--space-4, 15px);overflow:visible;min-height:0}.data-manager-container{flex:0 0 auto;overflow:visible;min-height:0}.panel-left::-webkit-scrollbar,.panel-right::-webkit-scrollbar{width:8px}.panel-left::-webkit-scrollbar-track,.panel-right::-webkit-scrollbar-track{background:var(--color-bg-tertiary, #f3f4f6)}.panel-left::-webkit-scrollbar-thumb,.panel-right::-webkit-scrollbar-thumb{background:var(--color-border-secondary, #d1d5db);border-radius:4px}.panel-left::-webkit-scrollbar-thumb:hover,.panel-right::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary, #9ca3af)}.sidebar{display:flex;flex-direction:column;background-color:var(--color-bg-primary, #ffffff);border-right:1px solid var(--color-border-primary, #e5e7eb);box-shadow:var(--shadow-md)}.sidebar-header{padding:var(--space-5, 20px) var(--space-2, 10px);border-bottom:1px solid var(--color-border-primary, #e5e7eb);display:flex;flex-direction:column;gap:var(--space-2, 10px)}.app-title{font-size:var(--font-size-sm, 12px);font-weight:var(--font-weight-bold, bold);color:var(--color-text-primary, #111827);text-align:center;margin:0;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:2px}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:var(--space-2, 10px);padding:var(--space-5, 20px) var(--space-2, 10px)}.nav-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-1, 5px);padding:var(--space-3, 12px) var(--space-2, 8px);background-color:transparent;border:2px solid transparent;border-radius:var(--radius-xl, 12px);cursor:pointer;transition:all var(--transition-slow, .3s ease);color:var(--color-text-tertiary, #9ca3af)}.nav-btn:hover:not(:disabled){background-color:var(--color-bg-hover, #f0f0f0);color:var(--color-text-primary, #111827)}.nav-btn.active{background-color:var(--color-primary-light, #dbeafe);border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.nav-icon{font-size:var(--font-size-2xl, 24px);line-height:1}.nav-label{font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-semibold, 600);text-align:center}.sidebar-footer{padding:var(--space-4, 15px) var(--space-2, 10px);border-top:1px solid var(--color-border-primary, #e5e7eb)}.mode-indicator{font-size:var(--font-size-xs, 10px);color:var(--color-text-tertiary, #9ca3af);text-align:center;writing-mode:vertical-rl;text-orientation:mixed}.user-info{display:flex;flex-direction:column;align-items:center;gap:var(--space-2, 8px);margin-top:var(--space-4, 15px);padding-top:var(--space-4, 15px);border-top:1px solid var(--color-border-primary, #e5e7eb)}.username{font-size:var(--font-size-xs, 10px);color:var(--color-text-primary, #111827);font-weight:var(--font-weight-semibold, 600);text-align:center;writing-mode:vertical-rl;text-orientation:mixed}.role-badge{font-size:var(--font-size-xs, 9px);padding:var(--space-1, 4px) var(--space-2, 8px);background-color:var(--color-primary-light, #dbeafe);color:var(--color-primary, #3b82f6);border-radius:var(--radius-xl, 12px);font-weight:var(--font-weight-bold, bold);text-transform:uppercase;letter-spacing:.5px}.logout-btn{font-size:var(--font-size-xs, 10px);padding:var(--space-1, 6px) var(--space-2, 10px);background-color:var(--color-error, #ef4444);color:#fff;border:none;border-radius:var(--radius-md, 6px);cursor:pointer;transition:all var(--transition-fast, .2s ease);font-weight:var(--font-weight-semibold, 600)}.logout-btn:hover{background-color:var(--color-error, #dc2626);transform:scale(1.05)}.layer-details{display:flex;flex-direction:row;gap:var(--space-3, 12px);align-items:center;flex-wrap:nowrap}.layer-position,.layer-pivot{font-size:var(--font-size-xs, 11px);color:var(--color-text-secondary, #6b7280);white-space:nowrap}:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-active: #1d4ed8;--color-primary-light: #dbeafe;--color-secondary: #8b5cf6;--color-secondary-hover: #7c3aed;--color-secondary-light: #ede9fe;--color-bg-primary: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-tertiary: #f3f4f6;--color-bg-hover: #f0f0f0;--color-bg-active: #e5e7eb;--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-tertiary: #9ca3af;--color-text-disabled: #d1d5db;--color-text-inverse: #ffffff;--color-border-primary: #e5e7eb;--color-border-secondary: #d1d5db;--color-border-focus: #3b82f6;--color-border-error: #ef4444;--color-success: #10b981;--color-success-hover: #059669;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-error: #ef4444;--color-error-light: #fee2e2;--color-danger: #ef4444;--color-info: #3b82f6;--color-info-light: #dbeafe;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-family-mono: "Consolas", "Monaco", "Courier New", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 24px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--radius-sm: 3px;--radius-base: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-active);border-color:var(--color-primary-active)}.btn-secondary{background-color:var(--color-bg-primary);color:var(--color-text-primary);border-color:var(--color-border-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-hover);border-color:var(--color-border-secondary)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.input:hover{border-color:var(--color-border-secondary)}.input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.input:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-disabled);cursor:not-allowed}.input.error{border-color:var(--color-border-error)}.input.error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);outline:none}.select:hover{border-color:var(--color-border-secondary)}.select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.select:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-disabled);cursor:not-allowed}.textarea{width:100%;min-height:80px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);resize:vertical;transition:all var(--transition-fast);outline:none}.textarea:hover{border-color:var(--color-border-secondary)}.textarea:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-group{margin-bottom:var(--spacing-lg)}.card{background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-primary)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.card-body{padding:var(--spacing-md) 0}.panel{background-color:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);padding:var(--spacing-md)}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.panel-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1;border-radius:var(--radius-full)}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-error{background-color:var(--color-error-light);color:var(--color-error)}.divider{height:1px;background-color:var(--color-border-primary);margin:var(--spacing-lg) 0}.text-md{font-size:var(--font-size-md)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}:root{--color-primary: #4A9EFF;--color-primary-hover: #3A8EEF;--color-primary-light: #E3F2FD;--color-primary-dark: #1976D2;--color-primary-alpha-10: rgba(74, 158, 255, .1);--color-primary-alpha-25: rgba(74, 158, 255, .25);--color-primary-alpha-50: rgba(74, 158, 255, .5);--color-white: #FFFFFF;--color-gray-50: #F8F9FA;--color-gray-100: #F1F3F5;--color-gray-200: #E9ECEF;--color-gray-300: #DEE2E6;--color-gray-400: #CED4DA;--color-gray-500: #ADB5BD;--color-gray-600: #6C757D;--color-gray-700: #495057;--color-gray-800: #343A40;--color-gray-900: #212529;--color-dark-bg-primary: #1A1A1A;--color-dark-bg-secondary: #2A2A2A;--color-dark-bg-tertiary: #3A3A3A;--color-dark-text-primary: #E0E0E0;--color-dark-text-secondary: #A0A0A0;--color-dark-border: #3A3A3A;--color-success: #28A745;--color-success-hover: #218838;--color-success-light: #D4EDDA;--color-warning: #FFC107;--color-warning-hover: #E0A800;--color-warning-light: #FFF3CD;--color-error: #DC3545;--color-error-hover: #C82333;--color-error-light: #F8D7DA;--color-info: #17A2B8;--color-info-hover: #138496;--color-info-light: #D1ECF1;--font-primary: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Fira Code", "Consolas", "Monaco", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-size-4xl: 28px;--font-size-5xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--border-width-thin: 1px;--border-width-medium: 2px;--border-width-thick: 3px;--radius-sm: 3px;--radius-base: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--border-light: var(--color-gray-200);--border-medium: var(--color-gray-300);--border-dark: var(--color-gray-400);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-base: 0 4px 6px rgba(0, 0, 0, .1);--shadow-md: 0 6px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .25);--shadow-primary: 0 2px 8px var(--color-primary-alpha-25);--shadow-success: 0 2px 8px rgba(40, 167, 69, .25);--shadow-error: 0 2px 8px rgba(220, 53, 69, .25);--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--bg-primary: var(--color-white);--bg-secondary: var(--color-gray-50);--bg-tertiary: var(--color-gray-100);--bg-hover: var(--color-gray-200);--bg-active: var(--color-primary-light);--bg-disabled: var(--color-gray-300);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-tertiary: var(--color-gray-500);--text-disabled: var(--color-gray-400);--text-inverse: var(--color-white);--interactive-primary: var(--color-primary);--interactive-primary-hover: var(--color-primary-hover);--interactive-secondary: var(--color-gray-600);--interactive-secondary-hover: var(--color-gray-700);--border-color: var(--border-light);--border-color-hover: var(--border-medium);--border-color-focus: var(--color-primary);--focus-ring: 0 0 0 3px var(--color-primary-alpha-25)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e9ecef}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Fira Code,Consolas,Monaco,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#ced4da}input::placeholder,textarea::placeholder{opacity:1;color:#ced4da}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.shadow{--tw-shadow: 0 4px 6px rgba(0, 0, 0, .1);--tw-shadow-colored: 0 4px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}:root{font-family:var(--font-primary);line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);font-size:var(--font-size-base);color-scheme:light;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh;overflow:hidden;background-color:var(--bg-secondary);color:var(--text-primary)}#root{width:100vw;height:100vh;overflow:hidden}*:focus-visible{outline:none;box-shadow:var(--focus-ring)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:var(--radius-base)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}
