.model-config{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);transition:box-shadow var(--transition)}.model-config:hover{box-shadow:var(--shadow-2)}.section-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;cursor:pointer;font-weight:500;font-size:14px;text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none;transition:background var(--transition)}.section-header:hover{background:linear-gradient(135deg,var(--primary-dark) 0%,#0d47a1 100%)}.collapse-icon{font-size:12px;opacity:.8;transition:transform var(--transition)}.section-content{padding:20px}.provider-buttons{display:flex;gap:12px}.provider-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;border:2px solid var(--divider);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:all var(--transition);position:relative;overflow:hidden}.provider-btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:currentColor;opacity:0;transition:opacity var(--transition)}.provider-btn:hover:before{opacity:.04}.provider-btn:hover{border-color:currentColor;transform:translateY(-2px);box-shadow:var(--shadow-1)}.provider-btn.openai{color:#10a37f}.provider-btn.anthropic{color:#d97706}.provider-btn.google{color:#4285f4}.provider-btn span{font-size:13px;font-weight:500;letter-spacing:.3px}.provider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--divider)}.provider-name{display:flex;align-items:center;gap:10px;font-weight:500;font-size:15px}.provider-name svg{opacity:.8}.back-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-size:13px;padding:6px 12px;border-radius:var(--radius);transition:background var(--transition);font-weight:500}.back-btn:hover{background:#1976d214}.api-key-input{display:flex;gap:10px}.api-key-input input{flex:1;padding:12px 16px;border:1px solid var(--divider);border-radius:var(--radius);font-size:14px;transition:border-color var(--transition),box-shadow var(--transition);background:var(--background)}.api-key-input input:hover{border-color:#0000004d}.api-key-input input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1976d21f}.api-key-input button,.model-select button{padding:12px 20px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;transition:background var(--transition),box-shadow var(--transition);box-shadow:var(--shadow-1)}.api-key-input button:hover,.model-select button:hover{background:var(--primary-dark);box-shadow:var(--shadow-2)}.api-key-input button:disabled,.model-select button:disabled{background:#0000001f;color:#00000061;cursor:not-allowed;box-shadow:none}.model-select{display:flex;gap:10px}.model-select select{flex:1;padding:12px 36px 12px 16px;border:1px solid var(--divider);border-radius:var(--radius);font-size:14px;background:var(--background);cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.model-select select:hover{border-color:#0000004d}.model-select select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1976d21f}.model-select button{padding:12px 16px;min-width:auto}.error-message{margin-top:12px;padding:12px 16px;background:#ffebee;color:var(--error);border-radius:var(--radius);font-size:13px;border-left:3px solid var(--error)}.listing-data{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-1);transition:box-shadow var(--transition)}.listing-data:hover{box-shadow:var(--shadow-2)}.section-title{font-weight:500;font-size:14px;color:var(--text-secondary);margin-bottom:16px;text-transform:uppercase;letter-spacing:.5px}.data-input textarea{width:100%;padding:14px 16px;border:1px solid var(--divider);border-radius:var(--radius);font-size:14px;font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color var(--transition),box-shadow var(--transition);background:var(--background);line-height:1.6}.data-input textarea:hover{border-color:#0000004d}.data-input textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1976d21f}.file-buttons{margin-top:12px;display:flex;gap:10px}.file-buttons button{padding:10px 16px;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;color:var(--text-primary);transition:all var(--transition);display:flex;align-items:center;gap:6px}.file-buttons button:hover{background:var(--background);border-color:var(--primary);color:var(--primary)}.images-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--divider)}.images-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.images-header span{font-weight:500;font-size:14px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.images-header button{padding:10px 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;transition:all var(--transition);box-shadow:var(--shadow-1);display:flex;align-items:center;gap:6px}.images-header button:hover{background:var(--primary-dark);box-shadow:var(--shadow-2);transform:translateY(-1px)}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px}.image-item{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);transition:transform var(--transition),box-shadow var(--transition)}.image-item:hover{transform:scale(1.03);box-shadow:var(--shadow-2)}.image-item img{width:100%;height:100%;object-fit:cover}.image-item .remove-btn{position:absolute;top:6px;right:6px;width:24px;height:24px;background:#0009;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:all var(--transition);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-item:hover .remove-btn{opacity:1}.image-item .remove-btn:hover{background:var(--error);transform:scale(1.1)}.no-images{padding:32px;text-align:center;color:var(--text-secondary);background:var(--background);border-radius:var(--radius);font-size:14px;border:2px dashed var(--divider)}.preview-panel{display:flex;flex-direction:column;height:100%;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-2)}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:linear-gradient(135deg,#37474f,#263238);color:#fff;min-height:56px}.preview-title{font-weight:500;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.history-nav{display:flex;align-items:center;gap:8px;background:#ffffff1a;padding:4px;border-radius:var(--radius)}.history-nav button{padding:6px 14px;background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:14px;color:#fff;transition:background var(--transition)}.history-nav button:hover:not(:disabled){background:#ffffff26}.history-nav button:disabled{opacity:.4;cursor:not-allowed}.history-nav span{font-size:13px;color:#fffc;min-width:60px;text-align:center;font-weight:500}.download-btn{padding:8px 16px;background:var(--success);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;transition:all var(--transition);box-shadow:0 2px 4px #0003;display:flex;align-items:center;gap:6px}.download-btn:hover:not(:disabled){background:#1b5e20;transform:translateY(-1px);box-shadow:0 4px 8px #0000004d}.download-btn:disabled{background:#fff3;cursor:not-allowed;box-shadow:none}.preview-content{flex:1;overflow:hidden;background:#fafafa}.preview-content iframe{width:100%;height:100%;border:none;background:#fff}.empty-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);background:linear-gradient(135deg,#fafafa,#f0f0f0);gap:16px}.empty-preview:before{content:"";width:80px;height:80px;background:var(--divider);border-radius:50%;display:flex;align-items:center;justify-content:center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='1.5'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M9 21V9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}.empty-preview p{margin:0;font-size:15px;font-weight:500}.generate-btn{width:100%;padding:16px 24px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:500;text-transform:uppercase;letter-spacing:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all var(--transition);box-shadow:var(--shadow-2);position:relative;overflow:hidden}.generate-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.generate-btn:hover:not(:disabled):before{left:100%}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-3)}.generate-btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-1)}.generate-btn:disabled{background:#0000001f;color:#00000061;cursor:not-allowed;box-shadow:none}.generate-btn.generating{background:linear-gradient(135deg,#78909c,#546e7a);cursor:wait}.spinner{width:20px;height:20px;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--primary: #1976d2;--primary-dark: #1565c0;--primary-light: #42a5f5;--secondary: #9c27b0;--background: #f5f5f5;--surface: #ffffff;--error: #d32f2f;--success: #2e7d32;--text-primary: rgba(0, 0, 0, .87);--text-secondary: rgba(0, 0, 0, .6);--divider: rgba(0, 0, 0, .12);--shadow-1: 0 2px 4px -1px rgba(0,0,0,.2), 0 4px 5px 0 rgba(0,0,0,.14), 0 1px 10px 0 rgba(0,0,0,.12);--shadow-2: 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12);--shadow-3: 0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12);--radius: 8px;--transition: .2s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{margin:0;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--background);color:var(--text-primary);-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:0 24px;height:64px;display:flex;align-items:center;box-shadow:var(--shadow-2);position:relative;z-index:100}.app-header h1{margin:0;font-size:20px;font-weight:500;letter-spacing:.5px}.app-main{flex:1;display:grid;grid-template-columns:440px 1fr;gap:24px;padding:24px;height:calc(100vh - 64px);overflow:hidden}.left-panel{display:flex;flex-direction:column;gap:16px;overflow-y:auto;overflow-x:hidden;padding-right:8px;padding-bottom:24px;max-height:100%}.left-panel::-webkit-scrollbar{width:8px}.left-panel::-webkit-scrollbar-track{background:transparent}.left-panel::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.left-panel::-webkit-scrollbar-thumb:hover{background:#0000004d}.right-panel{display:flex;flex-direction:column;min-height:0}.notes-section{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-1);transition:box-shadow var(--transition)}.notes-section:hover{box-shadow:var(--shadow-2)}.notes-section label{display:block;font-weight:500;font-size:14px;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.notes-section textarea{width:100%;padding:14px 16px;border:1px solid var(--divider);border-radius:var(--radius);font-size:14px;font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color var(--transition),box-shadow var(--transition);background:var(--background)}.notes-section textarea:hover{border-color:#0000004d}.notes-section textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1976d21f}.error-banner{padding:14px 16px;background:#ffebee;color:var(--error);border-radius:var(--radius);font-size:14px;border-left:4px solid var(--error);box-shadow:var(--shadow-1)}@media (max-width: 960px){.app-main{grid-template-columns:1fr;height:auto;overflow:visible}.left-panel{overflow:visible;padding-right:0;max-height:none}.right-panel{min-height:500px}}
