.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.auth-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:400px;max-height:90vh;overflow-y:auto}.auth-modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 0;border-bottom:1px solid #e5e7eb;margin-bottom:24px}.auth-modal-header h2{margin:0;font-size:24px;font-weight:600;color:#111827}.auth-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background-color .2s}.auth-modal-close:hover{background-color:#f3f4f6}.auth-form{padding:0 24px 24px}.auth-form-group{margin-bottom:20px}.auth-form-group label{display:block;margin-bottom:6px;font-weight:500;color:#374151;font-size:14px}.auth-form-group input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.auth-form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.auth-form-group input:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.auth-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.auth-submit-button{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-bottom:20px}.auth-submit-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 15px -3px #0000001a}.auth-submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-modal-footer{padding:20px 24px 24px;text-align:center;border-top:1px solid #e5e7eb}.auth-modal-footer p{margin:0;color:#6b7280;font-size:14px}.auth-toggle-button{background:none;border:none;color:#3b82f6;cursor:pointer;font-weight:500;text-decoration:underline;padding:0;font-size:14px}.auth-toggle-button:hover{color:#2563eb}@media (max-width: 480px){.auth-modal{margin:10px;max-width:none}.auth-modal-header,.auth-form,.auth-modal-footer{padding-left:20px;padding-right:20px}}.story-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:32px;margin-bottom:32px}.story-form h2{margin:0 0 24px;font-size:28px;font-weight:700;color:#1f2937;text-align:center;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.story-form-content{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#374151;font-size:16px}.form-group input,.form-group select,.form-group textarea{padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:16px;transition:border-color .2s,box-shadow .2s;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.theme-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px}.theme-option{padding:8px 12px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.theme-option:hover:not(:disabled){border-color:#3b82f6;background-color:#f8fafc}.theme-option.selected{border-color:#3b82f6;background-color:#3b82f6;color:#fff}.theme-option:disabled{opacity:.6;cursor:not-allowed}.character-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:12px}.character-option{padding:8px 12px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.character-option:hover:not(:disabled){border-color:#10b981;background-color:#f0fdf4}.character-option.selected{border-color:#10b981;background-color:#10b981;color:#fff}.character-option:disabled{opacity:.6;cursor:not-allowed}.setting-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px}.setting-option{padding:8px 12px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.setting-option:hover:not(:disabled){border-color:#f59e0b;background-color:#fffbeb}.setting-option.selected{border-color:#f59e0b;background-color:#f59e0b;color:#fff}.setting-option:disabled{opacity:.6;cursor:not-allowed}.custom-input{display:flex;gap:8px;margin-bottom:12px}.custom-input input{flex:1;margin:0}.custom-input button{padding:12px 16px;background:#6b7280;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;white-space:nowrap}.custom-input button:hover:not(:disabled){background:#4b5563}.custom-input button:disabled{opacity:.6;cursor:not-allowed}.selected-value{padding:8px 12px;background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;color:#0c4a6e;font-size:14px}.selected-characters{margin-top:12px}.character-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.character-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#10b981;color:#fff;border-radius:20px;font-size:14px;font-weight:500}.character-tag button{background:none;border:none;color:#fff;font-size:16px;font-weight:700;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.character-tag button:hover:not(:disabled){background-color:#fff3}.character-tag button:disabled{opacity:.6;cursor:not-allowed}.checkbox-group{display:flex;align-items:center;gap:12px;margin-bottom:8px}.checkbox-group input[type=checkbox]{width:20px;height:20px;margin:0;cursor:pointer;accent-color:#3b82f6}.checkbox-label{font-weight:600;color:#374151;font-size:16px;cursor:pointer;margin:0}.form-help{padding:12px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:14px;line-height:1.5}.form-help small{color:#94a3b8;font-size:12px}.form-actions{display:flex;gap:16px;margin-top:16px;justify-content:center}.cancel-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 32px;background:#f5f5f5;color:#666;border:2px solid #e0e0e0;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s}.cancel-button:hover:not(:disabled){background:#e0e0e0;border-color:#ccc;color:#333}.cancel-button:disabled{opacity:.6;cursor:not-allowed}.submit-button{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;flex:1}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.loading-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.story-form{padding:24px;margin:16px}.story-form h2{font-size:24px}.theme-options,.character-options,.setting-options{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.custom-input{flex-direction:column}.custom-input button{align-self:flex-start}}@media (max-width: 480px){.story-form{padding:20px;margin:12px}.theme-options,.character-options,.setting-options{grid-template-columns:1fr 1fr}}.story-type-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}.story-type-option{display:flex;align-items:center;gap:16px;padding:20px;border:2px solid #e5e7eb;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit}.story-type-option:hover{border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.story-type-option.selected{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.story-type-option:disabled{opacity:.6;cursor:not-allowed}.story-type-icon{font-size:32px;flex-shrink:0}.story-type-content{flex:1}.story-type-content h3{margin:0 0 4px;font-size:18px;font-weight:600}.story-type-content p{margin:0;font-size:14px;opacity:.8;line-height:1.4}.story-type-option.selected .story-type-content p{opacity:.9}@media (max-width: 768px){.story-type-options{grid-template-columns:1fr}.story-type-option{padding:16px}.story-type-icon{font-size:24px}.story-type-content h3{font-size:16px}.story-type-content p{font-size:13px}}.story-display{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:32px;margin-bottom:32px}.story-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.story-header h2{margin:0;font-size:28px;font-weight:700;color:#1f2937;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.story-actions{display:flex;gap:12px}.action-button{padding:8px 16px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.action-button:hover{border-color:#3b82f6;background-color:#f8fafc;color:#3b82f6}.copy-button:hover{border-color:#10b981;background-color:#f0fdf4;color:#10b981}.download-button:hover{border-color:#f59e0b;background-color:#fffbeb;color:#f59e0b}.story-content{margin-bottom:32px}.story-text{line-height:1.8;color:#374151}.story-paragraph{margin-bottom:16px;font-size:18px;text-align:justify}.story-paragraph:last-child{margin-bottom:0}.audio-section{margin-bottom:32px;padding:24px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:12px;border:1px solid #e2e8f0}.audio-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.generate-audio-button{display:flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.generate-audio-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.generate-audio-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.audio-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.audio-player{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.audio-controls{display:flex;align-items:center;gap:16px}.play-pause-button{width:48px;height:48px;border:none;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;font-size:20px;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center}.play-pause-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.audio-progress{flex:1;display:flex;align-items:center;gap:12px}.progress-slider{flex:1;height:6px;border-radius:3px;background:#e5e7eb;outline:none;cursor:pointer;-webkit-appearance:none}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#3b82f6;cursor:pointer;box-shadow:0 2px 4px #0003}.progress-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#3b82f6;cursor:pointer;border:none;box-shadow:0 2px 4px #0003}.regenerate-button{width:40px;height:40px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#6b7280;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.regenerate-button:hover:not(:disabled){border-color:#3b82f6;background-color:#f8fafc;color:#3b82f6}.regenerate-button:disabled{opacity:.6;cursor:not-allowed}.story-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;padding:20px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.info-item{font-size:14px;color:#374151}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.story-display{padding:24px;margin:16px}.story-header{flex-direction:column;gap:16px;align-items:flex-start}.story-header h2{font-size:24px}.story-actions{width:100%;justify-content:flex-end}.story-paragraph{font-size:16px}.audio-header{flex-direction:column;gap:16px;align-items:flex-start}.audio-controls{flex-direction:column;gap:12px}.audio-progress{width:100%}.story-info{grid-template-columns:1fr}}@media (max-width: 480px){.story-display{padding:20px;margin:12px}.story-header h2{font-size:20px}.story-paragraph{font-size:15px}.audio-section,.audio-player{padding:16px}}.story-book{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:32px;margin-bottom:32px;max-width:800px;margin-left:auto;margin-right:auto}.book-header{text-align:center;margin-bottom:32px}.book-header h2{margin:0 0 16px;font-size:28px;font-weight:700;color:#1f2937;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.image-generation-status{margin-top:16px}.generating-images{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;color:#0c4a6e;font-weight:500}.streaming-progress{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.progress-text{font-weight:600;color:#0369a1}.current-scene{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px}.scene-label{font-size:12px;color:#64748b;font-weight:500}.scene-text{font-size:14px;color:#475569;font-style:italic;text-align:center;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-bar{width:100%;max-width:300px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#0ea5e9,#3b82f6);border-radius:3px;transition:width .3s ease}.streaming-error{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#dc2626;font-size:14px;margin-top:8px}.image-error{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:#fef2f2;border:1px solid #ef4444;border-radius:8px;color:#dc2626;font-weight:500;flex-wrap:wrap}.retry-button{padding:8px 16px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.retry-button:hover{background:#dc2626}.images-success{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:#f0fdf4;border:1px solid #22c55e;border-radius:8px;color:#15803d;font-weight:500}.book-content{display:flex;flex-direction:column;gap:32px}.story-page{display:flex;flex-direction:column;gap:20px;padding:24px;background:#fafafa;border-radius:12px;border:1px solid #e5e7eb;position:relative}.story-page:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0}.story-image{text-align:center;margin-bottom:16px}.story-image img{max-width:100%;height:auto;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transition:transform .2s}.story-image img:hover{transform:scale(1.02)}.story-text{line-height:1.8;font-size:16px;color:#374151}.story-text p{margin:0;text-align:justify}.image-placeholder{display:flex;align-items:center;justify-content:center;min-height:200px;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;margin-bottom:16px}.placeholder-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:#64748b;font-weight:500}.generate-images-prompt{text-align:center;margin-top:32px;padding:24px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.generate-images-button{display:inline-flex;align-items:center;gap:12px;padding:16px 32px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.generate-images-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.story-actions{display:flex;gap:12px;margin-bottom:16px;justify-content:center}.action-button{display:flex;align-items:center;gap:8px;padding:8px 16px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.action-button:hover{border-color:#3b82f6;background-color:#f8fafc}.copy-button:hover{border-color:#10b981;background-color:#f0fdf4}.download-button:hover{border-color:#f59e0b;background-color:#fffbeb}.edit-button{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:#f59e0b}.edit-button:hover{background:linear-gradient(135deg,#d97706,#b45309);border-color:#d97706;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.audio-section{margin-top:32px;padding:24px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.audio-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:16px}.audio-header h3{margin:0;font-size:20px;font-weight:600;color:#1f2937}.generate-audio-button{display:flex;align-items:center;gap:12px;padding:12px 24px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.generate-audio-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.generate-audio-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.audio-error{padding:16px;background:#fef2f2;border:1px solid #ef4444;border-radius:8px;color:#dc2626;font-weight:500;margin-bottom:20px}.audio-player{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px}.audio-truncation-notice{padding:12px 16px;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;color:#92400e;font-size:14px;margin-bottom:16px}.audio-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.play-pause-button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:50%;font-size:20px;cursor:pointer;transition:transform .2s,box-shadow .2s}.play-pause-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #3b82f666}.play-pause-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.audio-progress{display:flex;align-items:center;gap:12px;flex:1;min-width:200px}.time-display{font-size:14px;font-weight:500;color:#6b7280;min-width:40px;text-align:center}.progress-slider{flex:1;height:6px;background:#e5e7eb;border-radius:3px;outline:none;cursor:pointer;-webkit-appearance:none}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:#3b82f6;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0003}.progress-slider::-moz-range-thumb{width:18px;height:18px;background:#3b82f6;border-radius:50%;cursor:pointer;border:none;box-shadow:0 2px 4px #0003}.regenerate-button,.download-audio-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#6b7280;color:#fff;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:background-color .2s}.regenerate-button:hover:not(:disabled),.download-audio-button:hover:not(:disabled){background:#4b5563}.regenerate-button:disabled,.download-audio-button:disabled{opacity:.6;cursor:not-allowed}.story-info{margin-top:32px;padding:20px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.info-item{margin-bottom:8px;font-size:14px;color:#374151}.info-item:last-child{margin-bottom:0}.info-item strong{color:#1f2937;font-weight:600}.loading-spinner{width:20px;height:20px;border:2px solid rgba(0,0,0,.1);border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.story-book{padding:24px;margin:16px}.book-header h2{font-size:24px}.story-page{padding:20px}.story-text{font-size:15px}.image-error{flex-direction:column;text-align:center}}@media (max-width: 480px){.story-book{padding:20px;margin:12px}.story-page{padding:16px}.story-text{font-size:14px}.generate-images-button{padding:12px 24px;font-size:14px}}.audio-controls-header{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.speed-control{display:flex;align-items:center;gap:12px}.speed-label{font-size:14px;font-weight:500;color:#374151;white-space:nowrap}.speed-slider{width:120px;height:6px;border-radius:3px;background:#e5e7eb;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.speed-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#3b82f6;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0000001a;transition:all .2s}.speed-slider::-webkit-slider-thumb:hover{background:#2563eb;transform:scale(1.1)}.speed-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#3b82f6;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0000001a;transition:all .2s}.speed-slider::-moz-range-thumb:hover{background:#2563eb;transform:scale(1.1)}.speed-slider::-webkit-slider-track{background:#e5e7eb;height:6px;border-radius:3px}.speed-slider::-moz-range-track{background:#e5e7eb;height:6px;border-radius:3px;border:none}@media (max-width: 768px){.audio-controls-header{flex-direction:column;align-items:stretch;gap:16px}.speed-control{justify-content:space-between}.speed-slider{width:100px}}.payment-method-form{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-width:500px;margin:0 auto}.form-header{text-align:center;margin-bottom:24px}.form-header h3{margin:0 0 8px;font-size:24px;font-weight:700;color:#1f2937}.form-header p{margin:0;color:#6b7280;font-size:14px}.card-element-container{padding:16px;border:2px solid #e5e7eb;border-radius:8px;margin-bottom:16px;background:#f9fafb;transition:border-color .2s}.card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px}.form-actions{display:flex;gap:12px;justify-content:flex-end}.cancel-button{padding:12px 24px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-button:hover:not(:disabled){border-color:#d1d5db;background-color:#f9fafb}.cancel-button:disabled{opacity:.5;cursor:not-allowed}.submit-button{padding:12px 24px;border:none;border-radius:8px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.StripeElement{background:transparent;padding:0;margin:0;border:none;outline:none;font-size:16px;color:#424770}.StripeElement--focus{outline:none}.StripeElement--invalid{color:#9e2146}.StripeElement--webkit-autofill{background-color:#fefde5!important}.profile-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.payment-form-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1001}.payment-form-container{background:#fff;border-radius:12px;padding:0;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.profile-container{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.profile-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.profile-header h2{margin:0;font-size:24px;font-weight:600}.close-button{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background-color .2s}.close-button:hover{background-color:#ffffff1a}.profile-tabs{display:flex;background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.tab-button{flex:1;padding:16px 24px;background:none;border:none;cursor:pointer;font-size:16px;font-weight:500;color:#6b7280;transition:all .2s;border-bottom:3px solid transparent}.tab-button:hover{background-color:#f3f4f6;color:#374151}.tab-button.active{color:#667eea;border-bottom-color:#667eea;background-color:#fff}.profile-content{flex:1;overflow-y:auto;padding:24px}.profile-section h3{margin:0 0 20px;font-size:20px;font-weight:600;color:#111827}.profile-info{display:flex;flex-direction:column;gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item label{font-weight:500;color:#374151;font-size:14px}.info-item span{color:#6b7280;font-size:16px}.subscription-section h3{margin:0 0 20px;font-size:20px;font-weight:600;color:#111827}.loading,.error{text-align:center;padding:40px 20px;color:#6b7280}.error{color:#ef4444}.current-subscription{margin-bottom:32px}.subscription-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:24px}.subscription-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.subscription-header h4{margin:0;font-size:18px;font-weight:600;color:#111827}.status-badge{padding:4px 12px;border-radius:20px;color:#fff;font-size:12px;font-weight:500;text-transform:uppercase}.subscription-details{margin:16px 0;display:flex;flex-direction:column;gap:8px}.detail-item{display:flex;justify-content:space-between;align-items:center}.detail-item label{font-weight:500;color:#374151}.detail-item span{color:#6b7280}.canceling{color:#f59e0b!important;font-weight:500}.subscription-actions{margin-top:20px;padding-top:20px;border-top:1px solid #e5e7eb}.cancel-button{background-color:#ef4444;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.cancel-button:hover{background-color:#dc2626}.no-subscription p{color:#6b7280;margin-bottom:32px}.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:24px}.plan-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:24px;position:relative;transition:all .2s}.plan-card:hover{border-color:#667eea;box-shadow:0 10px 15px -3px #0000001a}.plan-card.popular{border-color:#667eea;box-shadow:0 10px 15px -3px #667eea1a}.popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 16px;border-radius:20px;font-size:12px;font-weight:600}.plan-header{text-align:center;margin-bottom:16px}.plan-header h4{margin:0 0 8px;font-size:20px;font-weight:600;color:#111827}.plan-price{display:flex;align-items:baseline;justify-content:center;gap:4px}.price{font-size:32px;font-weight:700;color:#111827}.interval{font-size:16px;color:#6b7280}.plan-description{text-align:center;color:#6b7280;margin-bottom:20px;font-size:14px}.plan-features{list-style:none;padding:0;margin:0 0 24px}.plan-features li{color:#374151;font-size:14px;position:relative;padding:8px 0 8px 24px}.plan-features li:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700}.subscribe-button{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.subscribe-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 15px -3px #667eea4d}.subscribe-button:disabled{opacity:.6;cursor:not-allowed}.billing-section h3{margin:0 0 20px;font-size:20px;font-weight:600;color:#111827}.payment-methods{display:flex;flex-direction:column;gap:16px}.payment-method-card{display:flex;justify-content:space-between;align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.method-info{display:flex;flex-direction:column;gap:4px}.method-type{display:flex;align-items:center;gap:8px;font-weight:500;color:#111827}.card-brand{background:#667eea;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.card-number{color:#6b7280;font-family:monospace}.method-details{display:flex;gap:16px;font-size:14px;color:#6b7280}.remove-button{background:none;border:1px solid #e5e7eb;color:#6b7280;padding:6px 12px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.remove-button:hover{border-color:#ef4444;color:#ef4444}.no-payment-methods{text-align:center;padding:40px 20px;color:#6b7280}.add-payment-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;margin-top:16px;transition:all .2s}.add-payment-button:hover{transform:translateY(-1px);box-shadow:0 10px 15px -3px #667eea4d}.cancel-dialog{padding:24px;text-align:center}.cancel-dialog h3{margin:0 0 16px;font-size:20px;font-weight:600;color:#111827}.cancel-dialog>p{margin:0 0 24px;color:#6b7280;font-size:16px}.cancel-options{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.cancel-option{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:20px;text-align:left;transition:all .2s}.cancel-option:hover{border-color:#667eea;background:#f8faff}.cancel-option h4{margin:0 0 8px;font-size:16px;font-weight:600;color:#111827}.cancel-option p{margin:0 0 16px;color:#6b7280;font-size:14px;line-height:1.5}.cancel-option-button{width:100%;background:#667eea;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.cancel-option-button:hover{background:#5a67d8}.cancel-option-button.immediate{background:#ef4444}.cancel-option-button.immediate:hover{background:#dc2626}.cancel-dialog-close{background:none;border:1px solid #e5e7eb;color:#6b7280;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-dialog-close:hover{border-color:#d1d5db;color:#374151;background:#f9fafb}.payment-method-selection-dialog{padding:24px;text-align:center}.payment-method-selection-dialog h3{margin:0 0 16px;font-size:20px;font-weight:600;color:#111827}.payment-method-selection-dialog>p{margin:0 0 24px;color:#6b7280;font-size:16px}.payment-method-options{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.payment-method-option{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:20px;text-align:left;transition:all .2s;display:flex;justify-content:space-between;align-items:center}.payment-method-option:hover{border-color:#667eea;background:#f8faff;box-shadow:0 4px 6px -1px #0000001a}.payment-method-option .method-info{display:flex;flex-direction:column;gap:4px}.payment-method-option .method-type{display:flex;align-items:center;gap:8px;font-weight:500;color:#111827}.payment-method-option .card-brand{background:#667eea;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.payment-method-option .card-number{color:#6b7280;font-family:monospace}.payment-method-option .method-details{display:flex;gap:16px;font-size:14px;color:#6b7280}.select-payment-method-button{background:#667eea;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.select-payment-method-button:hover{background:#5a67d8;transform:translateY(-1px);box-shadow:0 4px 6px -1px #667eea4d}.payment-method-selection-actions{display:flex;flex-direction:column;gap:12px;align-items:center}.add-new-payment-method-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.add-new-payment-method-button:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #667eea4d}.cancel-payment-method-selection{background:none;border:1px solid #e5e7eb;color:#6b7280;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-payment-method-selection:hover{border-color:#d1d5db;color:#374151;background:#f9fafb}.billing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.billing-header h3{margin:0;font-size:20px;font-weight:600;color:#111827}@media (max-width: 768px){.profile-overlay{padding:10px}.profile-container{max-height:95vh}.profile-header{padding:16px}.profile-header h2{font-size:20px}.profile-content{padding:16px}.plans-grid{grid-template-columns:1fr;gap:16px}.plan-card{padding:20px}.payment-method-card{flex-direction:column;align-items:flex-start;gap:12px}.method-details{flex-direction:column;gap:4px}.billing-header,.payment-method-option{flex-direction:column;align-items:flex-start;gap:16px}.select-payment-method-button,.payment-method-selection-actions,.add-new-payment-method-button,.cancel-payment-method-selection{width:100%}}.app{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.2);padding:20px 0;position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.header-content h1{margin:0;font-size:32px;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-content p{margin:4px 0 0;color:#6b7280;font-size:16px}.auth-section{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:12px;color:#374151;font-weight:500}.login-button,.logout-button,.profile-button{padding:10px 20px;border:2px solid #667eea;border-radius:8px;background:#fff;color:#667eea;font-weight:600;cursor:pointer;transition:all .2s;font-size:14px}.login-button:hover,.profile-button:hover{background:#667eea;color:#fff;transform:translateY(-1px)}.logout-button{border-color:#ef4444;color:#ef4444}.logout-button:hover{background:#ef4444;color:#fff}main{max-width:1200px;margin:0 auto;padding:40px 20px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:#fff;text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.loading-spinner.large{width:60px;height:60px;border-width:6px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.welcome-section{display:flex;justify-content:center;align-items:center;min-height:60vh}.welcome-content{background:#fff;border-radius:20px;padding:48px;text-align:center;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:800px}.welcome-content h2{margin:0 0 16px;font-size:36px;font-weight:700;color:#1f2937}.welcome-content p{margin:0 0 32px;font-size:18px;color:#6b7280;line-height:1.6}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-bottom:32px}.feature{text-align:center}.feature-icon{font-size:48px;display:block;margin-bottom:16px}.feature h3{margin:0 0 8px;font-size:20px;font-weight:600;color:#1f2937}.feature p{margin:0;font-size:14px;color:#6b7280;line-height:1.5}.get-started-button{padding:16px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.get-started-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.generating-section{display:flex;justify-content:center;align-items:center;min-height:60vh}.generating-content{background:#fff;border-radius:20px;padding:48px;text-align:center;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:600px}.generating-content h2{margin:24px 0 16px;font-size:28px;font-weight:700;color:#1f2937}.generating-content p{margin:0 0 24px;font-size:16px;color:#6b7280}.story-preview{margin-top:24px;padding:20px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0;text-align:left}.story-preview h3{margin:0 0 12px;font-size:18px;font-weight:600;color:#1f2937}.preview-text{font-size:16px;line-height:1.6;color:#374151;white-space:pre-wrap}.typing-cursor{animation:blink 1s infinite;color:#667eea;font-weight:700}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.error-section{display:flex;justify-content:center;align-items:center;min-height:60vh}.error-content{background:#fff;border-radius:20px;padding:48px;text-align:center;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:500px}.error-content h2{margin:0 0 16px;font-size:24px;font-weight:700;color:#dc2626}.error-content p{margin:0 0 24px;font-size:16px;color:#6b7280}.retry-button{padding:12px 24px;background:#dc2626;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.retry-button:hover{background:#b91c1c}.action-section{display:flex;justify-content:center;margin-top:32px}.new-story-button{padding:16px 32px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.new-story-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #10b98166}footer{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.2);padding:24px 0;text-align:center;color:#fff;font-size:14px}footer p{margin:0;opacity:.9}@media (max-width: 768px){.header-content{flex-direction:column;gap:16px;text-align:center}.header-content h1{font-size:28px}.welcome-content,.generating-content,.error-content{padding:32px 24px;margin:0 16px}.welcome-content h2{font-size:28px}.features{grid-template-columns:1fr;gap:20px}.generating-content h2{font-size:24px}.error-content h2{font-size:20px}}@media (max-width: 480px){main{padding:20px 12px}.header-content{padding:0 12px}.header-content h1{font-size:24px}.welcome-content,.generating-content,.error-content{padding:24px 20px;margin:0 12px}.welcome-content h2{font-size:24px}.welcome-content p{font-size:16px}.get-started-button,.new-story-button{padding:14px 24px;font-size:16px}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;line-height:1.5}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1f2937}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus{outline:2px solid #3b82f6;outline-offset:2px}button{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:none;border:none;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}a{color:#3b82f6;text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}::selection{background-color:#3b82f6;color:#fff}::-moz-selection{background-color:#3b82f6;color:#fff}
