.poster-generator { min-height: 100vh; background: #f5f5f5; display: flex; flex-direction: column; } // Header .generator-header { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 1.5rem; background: white; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); position: sticky; top: 0; z-index: 100; .header-left { display: flex; align-items: center; gap: 0.75rem; } .header-title { h1 { margin: 0; font-size: 1.25rem; font-weight: 600; } .subtitle { font-size: 0.8rem; color: #888; } } .header-actions { display: flex; gap: 0.75rem; } } // Steps Indicator .steps-indicator { display: flex; align-items: center; justify-content: center; padding: 1.5rem 2rem; background: white; border-bottom: 1px solid #e0e0e0; position: relative; gap: 0; .step-item { display: flex; flex-direction: column; align-items: center; padding: 0 2rem; position: relative; z-index: 2; cursor: default; transition: all 0.2s; &.is-clickable { cursor: pointer; &:hover .step-number { transform: scale(1.1); } } &.is-completed { .step-number { background: #4caf50; border-color: #4caf50; color: white; } .step-label { color: #4caf50; } } &.is-active { .step-number { background: #667eea; border-color: #667eea; color: white; transform: scale(1.1); box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4); } .step-label { color: #667eea; font-weight: 600; } } } .step-number { width: 40px; height: 40px; border-radius: 50%; border: 2px solid #ddd; background: white; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 0.9rem; color: #888; transition: all 0.3s; } .step-label { margin-top: 0.5rem; font-size: 0.8rem; color: #888; transition: all 0.2s; } .step-line { position: absolute; left: 15%; right: 15%; top: calc(1.5rem + 20px); height: 3px; background: linear-gradient(90deg, #4caf50, #667eea); border-radius: 2px; z-index: 1; transition: width 0.4s ease; &::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 100%; background: #e0e0e0; z-index: -1; border-radius: 2px; } } } // Content .generator-content { flex: 1; padding: 2rem; max-width: 1600px; margin: 0 auto; width: 100%; } .step-content { animation: fadeIn 0.3s ease; } .step-with-preview { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; @media (max-width: 1200px) { grid-template-columns: 1fr; } } .form-section { background: white; border-radius: 16px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); overflow: hidden; } .preview-section { position: sticky; top: 100px; height: fit-content; &.preview-large { @media (min-width: 1200px) { grid-column: span 1; } } } // Animations .slide-fade-enter-active, .slide-fade-leave-active { transition: all 0.3s ease; } .slide-fade-enter-from { opacity: 0; transform: translateX(30px); } .slide-fade-leave-to { opacity: 0; transform: translateX(-30px); } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } // Responsive @media (max-width: 768px) { .generator-header { flex-wrap: wrap; gap: 1rem; .header-actions { width: 100%; justify-content: flex-end; } } .steps-indicator { padding: 1rem; overflow-x: auto; .step-item { padding: 0 1rem; } .step-label { display: none; } } .generator-content { padding: 1rem; } } // Dark mode .body--dark { .poster-generator { background: #1a1a1a; } .generator-header { background: #2d2d2d; } .steps-indicator { background: #2d2d2d; border-color: #404040; .step-number { background: #333; border-color: #555; } } .form-section { background: #2d2d2d; } }