.ab-container { max-width: 1200px; margin: 20px auto; background: white; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.1); overflow: hidden; animation: fadeInUp 0.6s ease-out; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
.ab-header { background: linear-gradient(135deg, #0078d4 0%, #005a9e 100%); color: white; padding: 40px; text-align: center; }
.ab-header h1 { font-size: 2.5em; margin-bottom: 10px; color: #ffffff; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); font-weight: 700; }
.ab-main-content { padding: 40px; }
.upload-section { margin-bottom: 40px; }
.upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-bottom: 30px; }
.upload-box { border: 3px dashed #ddd; border-radius: 10px; padding: 40px 20px; text-align: center; transition: all 0.3s ease; cursor: pointer; }
.upload-box:hover { border-color: #667eea; background: #f8f9ff; }
.upload-box.has-file { border-color: #27ae60; background: #f0fff4; }
.upload-box h3 { color: #333; margin-bottom: 15px; font-size: 1.3em; }
.upload-box p { color: #666; margin-bottom: 20px; }
.file-input { display: none; }
.upload-btn { background: linear-gradient(135deg, #667eea, #764ba2); color: white; border: none; padding: 12px 24px; border-radius: 25px; cursor: pointer; font-size: 1em; transition: transform 0.2s ease; }
.upload-btn:hover { transform: translateY(-2px); }
.preview-image { max-width: 200px; max-height: 150px; margin-top: 15px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }
.generate-section { text-align: center; margin: 40px 0; }
.generate-btn { background: linear-gradient(135deg, #27ae60, #2ecc71); color: white; border: none; padding: 15px 40px; border-radius: 30px; font-size: 1.2em; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(39, 174, 96, 0.3); }
.generate-btn:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(39, 174, 96, 0.4); }
.generate-btn:disabled { background: #bdc3c7; cursor: not-allowed; transform: none; box-shadow: none; }
.result-section { display: none; margin-top: 40px; padding-top: 40px; border-top: 2px solid #ecf0f1; }
.interactive-display { text-align: center; background: linear-gradient(135deg, #f8f9fa, #e9ecef); padding: 30px; border-radius: 15px; margin-bottom: 30px; }
.interactive-image { max-width: 400px; max-height: 400px; cursor: pointer; border-radius: 10px; transition: all 0.3s ease; background: white; padding: 10px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); }
.interactive-image:hover { transform: scale(1.02); }
.control-buttons { margin-top: 20px; }
.control-btn { background: linear-gradient(135deg, #3498db, #2980b9); color: white; border: none; padding: 10px 20px; margin: 0 10px; border-radius: 20px; cursor: pointer; transition: all 0.2s ease; }
.control-btn:hover { transform: translateY(-2px); }
.control-btn.black { background: linear-gradient(135deg, #2c3e50, #34495e); }
.status-display { margin-top: 15px; padding: 10px 20px; border-radius: 20px; background: linear-gradient(135deg, #ecf0f1, #d5dbdb); color: #2c3e50; font-weight: bold; display: inline-block; }
.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 30px; }
.comparison-item { text-align: center; background: #f8f9fa; padding: 20px; border-radius: 10px; }
.comparison-item h4 { margin-bottom: 15px; color: #2c3e50; }
.comparison-image { max-width: 300px; max-height: 250px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }
.white-bg { background: white !important; }
.black-bg { background: black !important; }
.download-section { text-align: center; margin-top: 30px; padding: 20px; background: #f8f9fa; border-radius: 10px; }
.download-btn { background: linear-gradient(135deg, #e74c3c, #c0392b); color: white; border: none; padding: 12px 30px; border-radius: 25px; font-size: 1.1em; cursor: pointer; transition: all 0.3s ease; text-decoration: none; display: inline-block; }
.download-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 15px rgba(231, 76, 60, 0.3); }
.error-message { background: #f8d7da; color: #721c24; padding: 15px; border-radius: 8px; margin: 20px 0; border: 1px solid #f5c6cb; }
.member-required { background-color: #ccc !important; color: #666 !important; cursor: not-allowed !important; opacity: 0.6; }
.member-required:hover { background-color: #ccc !important; transform: none !important; }
.member-notice { background: linear-gradient(135deg, #ff6b6b, #ee5a24); color: white; padding: 15px; border-radius: 8px; margin: 20px 0; text-align: center; animation: pulse 2s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 107, 107, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(255, 107, 107, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 107, 107, 0); } }
.member-notice a { color: #fff; text-decoration: underline; font-weight: bold; }
.demo-section { margin-top: 30px; padding: 25px; background: rgba(255,255,255,0.1); border-radius: 15px; backdrop-filter: blur(10px); }
.demo-section h3 { color: #ffffff; text-align: center; margin-bottom: 25px; font-size: 1.3em; text-shadow: 1px 1px 3px rgba(0,0,0,0.3); }
.demo-grid { display: flex; justify-content: center; gap: 40px; margin-bottom: 20px; }
.demo-item { text-align: center; }
.demo-title { color: #ffffff; font-size: 15px; font-weight: 600; margin-bottom: 12px; text-shadow: 1px 1px 2px rgba(0,0,0,0.3); background: rgba(255,255,255,0.15); padding: 8px 16px; border-radius: 20px; display: inline-block; }
.demo-image-box { width: 220px; height: 220px; border-radius: 12px; overflow: hidden; display: flex; align-items: center; justify-content: center; border: 3px solid #333; transition: transform 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.demo-image-box:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.2); }
.demo-image-box.white-bg { background: #ffffff; border-color: #000; }
.demo-image-box.black-bg { background: #000000; border-color: #000; }
.demo-image-box img { max-width: 100%; max-height: 100%; object-fit: contain; }
.demo-description { color: #ffffff; text-align: center; font-size: 15px; text-shadow: 1px 1px 2px rgba(0,0,0,0.3); margin: 0; }
@media (max-width: 768px) { .upload-grid, .comparison-grid { grid-template-columns: 1fr; } .ab-header h1 { font-size: 2em; } .ab-main-content { padding: 20px; } .interactive-image { max-width: 300px; } .demo-section { padding: 15px; } .demo-grid { flex-direction: column; align-items: center; gap: 20px; } .demo-image-box { width: 150px; height: 150px; } }
