
.btn-orange-action,
.btn-generate,
.btn-neon-green,
.btn-finish-gray,
.vm-button-glossy,
button[class*="btn"] {
    transform: translateZ(0);
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    contain: layout style paint;
    min-height: 44px;
}

.dashboard-actions {
    margin-top: 20px;
    position: relative;
    z-index: 50;
    min-height: 56px;
}

.dashboard-actions.sticky {
    position: sticky;
    bottom: 20px;
    z-index: 100;
    margin-top: auto;
}


.generation-button-container {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding: 20px;
    background: #292929;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.storyboard-dashboard {
    position: relative;
}

.storyboard-dashboard .dashboard-content {
    padding-bottom: 100px;
}

.floating-generate-button {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
    animation: fadeInUp 0.3s ease-out;
    will-change: transform, opacity;
    transform: translateZ(0);
}

.floating-generate-button button {
    min-width: 180px;
    min-height: 44px;
    box-shadow: var(--vm-shadow-lg);
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    background: rgba(26, 26, 26, 0.95);
    transition: background-color 0.15s ease,
                border-color 0.15s ease,
                opacity 0.15s ease,
                transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 20px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.btn-orange-action:disabled,
.btn-generate:disabled,
button[disabled] {
    min-height: 44px;
    transition: opacity 0.15s ease;
    transform: translateZ(0);
}

.generation-spinner,
.spinner-border,
[class*="loading"] svg,
[class*="ai-loading"] {
    transform: translateZ(0);
    will-change: transform;
    backface-visibility: hidden;
}

@keyframes spin {
    0% { 
        transform: rotate3d(0, 0, 1, 0deg);
    }
    100% { 
        transform: rotate3d(0, 0, 1, 360deg);
    }
}

.btn-orange-action span,
.btn-generate span,
button span {
    display: inline-block;
    min-width: 1ch;
}


.storyboard-dashboard .dashboard-content,
.dashboard-content {
    position: relative;
    overflow-y: auto;
    overflow-x: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.dashboard-content > *:not(.generation-button-container) {
    flex-shrink: 0;
}

.settings-sections-container {
    flex-grow: 1;
}

.dashboard-content:not(:has(.generation-button-container .settings-sections-container)) {
    padding-bottom: 160px;
}
