.voice-selector{width:100%}.voice-selector-loading{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center}.voice-selector-loading .loading-spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top-color:#007bff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.voice-selector-error{text-align:center;padding:2rem;color:#dc3545}.voice-selector-error .retry-btn{margin-top:1rem;padding:.5rem 1rem;background:#007bff;color:white;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.voice-selector-error .retry-btn:hover{background:#0056b3}.voice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}.voice-card{border:2px solid #e0e0e0;border-radius:8px;padding:1rem;background:#f8f9fa;cursor:pointer;transition:all .2s ease;position:relative}.voice-card:hover{border-color:#007bff;box-shadow:0 2px 8px rgba(0,123,255,.1)}.voice-card.selected{border-color:#007bff;background:#e7f3ff;box-shadow:0 2px 8px rgba(0,123,255,.2)}.voice-card.disabled{opacity:.6;cursor:not-allowed}.voice-card.disabled:hover{border-color:#e0e0e0;box-shadow:none}.voice-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.voice-name-wrapper{display:flex;flex-direction:column;gap:.25rem;flex:1}.voice-name{margin:0;font-size:1rem;font-weight:600;color:#333}.custom-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:white;border-radius:12px;align-self:flex-start}.play-btn{background:#007bff;color:white;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:.9rem}.play-btn:hover{background:#0056b3;transform:scale(1.05)}.play-btn.playing{background:#dc3545}.play-btn.playing:hover{background:#c82333}.play-btn.loading{background:#6c757d;cursor:not-allowed}.play-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.voice-description{margin:0;font-size:.875rem;color:#666;line-height:1.4}.selected-indicator{position:absolute;top:-8px;right:-8px;background:#28a745;color:white;font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:12px;box-shadow:0 2px 4px rgba(0,0,0,.1)}.loading-spinner-small{border:2px solid transparent;border-top-color:currentcolor}.voice-error-message{background:#f8d7da;color:#721c24;padding:.75rem;border-radius:4px;margin-top:1rem;text-align:center}@media (max-width:768px){.voice-grid{grid-template-columns:1fr}.voice-card{padding:.75rem}.voice-name{font-size:.9rem}.play-btn{width:32px;height:32px;font-size:.8rem}}.custom-voice-manager{display:flex;flex-direction:column;gap:2rem;width:100%}.custom-voice-form{background:#f8f9fa;border-radius:12px;padding:1.5rem}.custom-voice-form h3{margin:0 0 1rem;font-size:1.25rem;color:#2c3e50}.mode-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.mode-tab{flex:1;padding:.75rem 1rem;background:white;border:2px solid #dee2e6;border-radius:8px;font-size:.95rem;font-weight:500;color:#6c757d;cursor:pointer;transition:all .2s ease}.mode-tab:hover{border-color:#adb5bd;background:#f8f9fa}.mode-tab.active{background:#007bff;border-color:#007bff;color:white}.upload-area{position:relative;min-height:200px;background:white;border:2px dashed #dee2e6;border-radius:12px;margin-bottom:1.5rem;transition:all .3s ease}.upload-area.dragging{border-color:#007bff;background:#e7f3ff}.audio-input{display:none}.upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 2rem;height:100%}.upload-icon{font-size:3rem}.upload-text{font-size:1.1rem;font-weight:500;color:#495057}.upload-hint{font-size:.9rem;color:#6c757d}.record-area{min-height:200px;background:white;border-radius:12px;padding:2rem;margin-bottom:1.5rem;justify-content:center}.record-area,.record-controls{display:flex;align-items:center}.record-controls{flex-direction:column;gap:1rem}.record-btn{padding:1rem 2rem;background:#dc3545;color:white;border:none;border-radius:50px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;min-width:200px;justify-content:center}.record-btn:hover:not(:disabled){background:#c82333;transform:scale(1.05)}.record-btn:disabled{opacity:.6;cursor:not-allowed}.record-btn.recording{background:#28a745;animation:pulse-glow 2s ease-in-out infinite}.record-btn.recording:hover{background:#218838}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(220,53,69,.7)}50%{box-shadow:0 0 0 10px rgba(220,53,69,0)}}.record-indicator{width:12px;height:12px;background:white;border-radius:50%;display:inline-block}.record-indicator.pulse{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.record-icon{font-size:1.2rem}.record-hint{font-size:.9rem;color:#6c757d;margin:0}.audio-preview-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem}.audio-preview{width:100%;max-width:400px}.clear-audio-btn{padding:.5rem 1rem;background:#dc3545;color:white;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s ease}.clear-audio-btn:hover{background:#c82333}.voice-details-form{display:flex;flex-direction:column;gap:1rem}.voice-details-form .form-group{display:flex;flex-direction:column;gap:.5rem}.voice-details-form label{font-weight:600;color:#495057;font-size:.95rem}.voice-details-form input,.voice-details-form textarea{padding:.75rem;border:2px solid #dee2e6;border-radius:8px;font-size:.95rem;font-family:inherit;transition:border-color .2s ease;background:white!important;color:#2c3e50!important}.voice-details-form .form-group input,.voice-details-form .form-group textarea{background:white!important;color:#2c3e50!important}.voice-details-form input:focus,.voice-details-form textarea:focus{outline:none;border-color:#007bff;background:white!important}.voice-details-form input::placeholder,.voice-details-form textarea::placeholder{color:#adb5bd!important;opacity:1}.voice-details-form input:disabled,.voice-details-form textarea:disabled{background:#f8f9fa!important;color:#6c757d!important;opacity:.7}.voice-details-form textarea{resize:vertical;min-height:80px}.char-count{font-size:.85rem;color:#6c757d;text-align:right}.create-voice-btn{padding:1rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.create-voice-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.create-voice-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:spin .8s linear infinite}.error-message{gap:.5rem;padding:.75rem 1rem;background:#f8d7da;border:1px solid #f5c2c7;border-radius:8px;color:#842029;font-size:.9rem}.error-icon{font-size:1.2rem}.existing-voices{background:#f8f9fa;border-radius:12px;padding:1.5rem}.existing-voices h3{margin:0 0 1rem;font-size:1.25rem;color:#2c3e50}.voices-list{display:flex;flex-direction:column;gap:1rem}.voice-item{display:flex;gap:1rem;padding:1rem;background:white;border:2px solid #dee2e6;border-radius:8px;transition:all .2s ease}.voice-item:hover{border-color:#adb5bd;box-shadow:0 2px 8px rgba(0,0,0,.05)}.voice-item-info{flex:1;display:flex;flex-direction:column;gap:.5rem}.voice-item-info h4{margin:0;font-size:1rem;color:#2c3e50}.voice-item-info p{margin:0;font-size:.9rem;color:#6c757d}.voice-item-audio{width:100%;margin-top:.5rem}.delete-voice-btn{padding:.5rem 1rem;background:#dc3545;color:white;border:none;border-radius:6px;font-size:1.2rem;cursor:pointer;transition:all .2s ease;align-self:flex-start}.delete-voice-btn:hover{background:#c82333;transform:scale(1.1)}@media (max-width:768px){.custom-voice-form{padding:1rem}.mode-tabs{flex-direction:column}.upload-label{padding:2rem 1rem}.record-area{padding:1.5rem}.voice-item{flex-direction:column}.delete-voice-btn{align-self:stretch}}.custom-voice-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.custom-voice-modal-container{background:white;border-radius:16px;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 40px rgba(0,0,0,.2);animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.custom-voice-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #dee2e6}.custom-voice-modal-header h2{margin:0;font-size:1.5rem;color:#2c3e50;font-weight:700}.custom-voice-modal-close-btn{background:transparent;border:none;font-size:2rem;color:#6c757d;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;padding:0;line-height:1}.custom-voice-modal-close-btn:hover{background:#f8f9fa;color:#2c3e50}.custom-voice-modal-content{flex:1;overflow-y:auto;padding:2rem}.custom-voice-modal-description{margin:0 0 1.5rem;color:#6c757d;font-size:.95rem;line-height:1.6}.custom-voice-modal-footer{padding:1rem 2rem;border-top:1px solid #dee2e6;display:flex;justify-content:flex-end}.custom-voice-modal-done-btn{padding:.75rem 2rem;background:#007bff;color:white;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.custom-voice-modal-done-btn:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,123,255,.3)}@media (max-width:768px){.custom-voice-modal-container{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0}.custom-voice-modal-header{padding:1rem 1.5rem}.custom-voice-modal-header h2{font-size:1.25rem}.custom-voice-modal-content{padding:1.5rem}.custom-voice-modal-footer{padding:1rem 1.5rem}}.voice-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.voice-modal-container{background:white;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.2);max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.voice-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e0e0e0;background:#f8f9fa}.voice-modal-header h2{margin:0;font-size:1.5rem;font-weight:600;color:#333}.voice-modal-close-btn{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.voice-modal-close-btn:hover{background:#e9ecef;color:#333}.voice-modal-content{flex:1;overflow-y:auto;padding:2rem}.voice-modal-description-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.voice-modal-description{margin:0;color:#666;font-size:.95rem;line-height:1.5;flex:1}.create-custom-voice-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.create-custom-voice-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.create-custom-voice-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.voice-modal-footer{padding:1.5rem 2rem;border-top:1px solid #e0e0e0;background:#f8f9fa}.voice-modal-confirm-btn{width:100%;padding:.875rem 1.5rem;background:#007bff;color:white;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.voice-modal-confirm-btn:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.voice-modal-confirm-btn:disabled{background:#6c757d;cursor:not-allowed;transform:none;opacity:.7}.voice-loading-container{display:flex;align-items:center;justify-content:center;min-height:300px;color:#666;font-size:1rem}.voice-modal-content .voice-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.voice-modal-content .voice-card{transition:all .2s ease}.voice-modal-content .voice-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,123,255,.15)}.voice-modal-content .voice-card.selected{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,123,255,.25)}@media (max-width:768px){.voice-modal-overlay{padding:.5rem}.voice-modal-container{max-height:95vh}.voice-modal-header{padding:1rem 1.5rem}.voice-modal-header h2{font-size:1.25rem}.voice-modal-content{padding:1.5rem}.voice-modal-description-row{flex-direction:column;align-items:stretch}.create-custom-voice-btn{width:100%}.voice-modal-footer{padding:1rem 1.5rem}.voice-modal-content .voice-grid{grid-template-columns:1fr}}@media (max-width:480px){.voice-modal-header{padding:.75rem 1rem}.voice-modal-header h2{font-size:1.125rem}.voice-modal-content{padding:1rem}.voice-modal-footer{padding:.75rem 1rem}.voice-modal-confirm-btn{padding:.75rem 1rem;font-size:.9rem}}.edit-character-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.edit-character-modal-container{background:var(--surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);border:1px solid var(--border);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.edit-character-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2xl) var(--space-2xl) var(--space-lg);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:10}.edit-character-modal-header h2{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0;background:linear-gradient(135deg,var(--text-primary),var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.edit-character-modal-close-btn{background:none;border:none;font-size:1.75rem;color:var(--text-muted);cursor:pointer;transition:all .3s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);hover:var(--surface-light)}.edit-character-modal-close-btn:hover{background:var(--surface-light);color:var(--text-primary);transform:scale(1.1)}.edit-character-form{padding:var(--space-2xl);padding-top:var(--space-lg)}.form-layout{display:grid;grid-template-columns:300px 1fr;gap:var(--space-2xl);margin-bottom:var(--space-2xl)}.form-left,.form-right{display:flex;flex-direction:column}.form-right{gap:var(--space-xl)}.form-group{margin-bottom:var(--space-xl)}.form-label{display:block;font-weight:600;margin-bottom:var(--space-sm)}.form-input,.form-label,.form-textarea{font-size:1rem;color:var(--text-primary)}.form-input,.form-textarea{width:100%;padding:var(--space-md);border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-light);transition:all .3s ease;font-family:inherit;resize:vertical}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.1);background:var(--surface)}.form-textarea{min-height:80px;line-height:1.5}.form-textarea.large{min-height:140px}.field-help{font-size:.875rem;color:var(--text-muted);margin-top:var(--space-xs);line-height:1.4}.image-upload-group .form-label{margin-bottom:var(--space-md)}.image-upload-container{text-align:center}.image-preview{width:200px;height:200px;border-radius:var(--radius-2xl);overflow:hidden;position:relative;margin:0 auto var(--space-md);border:3px solid var(--border);transition:all .3s ease}.image-preview:hover{border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.preview-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.upload-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.image-preview:hover .upload-overlay{opacity:1}.image-input{position:absolute;opacity:0;width:0;height:0}.upload-label{color:white;font-size:.875rem;font-weight:500;cursor:pointer;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);background:rgba(255,255,255,.2);backdrop-filter:blur(10px);transition:all .3s ease}.upload-label:hover{background:rgba(255,255,255,.3);transform:scale(1.05)}.image-help{font-size:.8rem;color:var(--text-muted);line-height:1.4}.privacy-toggle-container{margin-top:var(--space-sm)}.privacy-options{display:flex;flex-direction:column;gap:var(--space-md)}.privacy-option{display:flex;align-items:flex-start;gap:var(--space-md);cursor:pointer;padding:var(--space-md);border:2px solid var(--border);border-radius:var(--radius-lg);transition:all .3s ease;background:var(--surface-light)}.privacy-option:hover{border-color:var(--primary);background:var(--surface)}.privacy-radio{margin-top:2px;accent-color:var(--primary)}.privacy-option-content{display:flex;align-items:flex-start;gap:var(--space-sm);flex:1}.privacy-icon{font-size:1.25rem;margin-top:-2px}.privacy-text{display:flex;flex-direction:column}.privacy-title{font-weight:600;color:var(--text-primary);font-size:.95rem}.privacy-desc{font-size:.85rem;color:var(--text-muted);line-height:1.3;margin-top:2px}.voice-selection-group{border-top:1px solid var(--border);padding-top:var(--space-xl);margin-top:var(--space-xl)}.voice-help{margin-bottom:var(--space-lg)}.voice-selection-trigger{margin-top:var(--space-md)}.voice-select-btn{width:100%;background:var(--surface-light);border:2px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:var(--space-md);text-align:left}.voice-select-btn:hover{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.voice-select-btn.has-selection{border-color:var(--primary);background:rgba(99,102,241,.05)}.voice-btn-icon{font-size:1.5rem;flex-shrink:0}.voice-btn-content{flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.voice-btn-title{font-weight:600;color:var(--text-primary);font-size:1rem}.voice-btn-description{font-size:.875rem;color:var(--text-secondary);line-height:1.3}.voice-btn-placeholder{font-size:.875rem;color:var(--text-muted);font-style:italic}.voice-btn-arrow{font-size:1.25rem;color:var(--text-muted);flex-shrink:0;transition:transform .3s ease}.voice-select-btn:hover .voice-btn-arrow{transform:translateX(4px)}.error-message{background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.3);color:#dc2626;padding:var(--space-md);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;line-height:1.4}.error-icon{font-size:1.1rem;flex-shrink:0}.delete-section{border-top:1px solid var(--border);padding-top:var(--space-xl);margin-top:var(--space-xl)}.delete-header{margin-bottom:var(--space-lg)}.delete-header h3{color:#dc2626;font-size:1.125rem;font-weight:600;margin:0 0 var(--space-xs)}.delete-header p{color:var(--text-muted);font-size:.9rem;margin:0;line-height:1.4}.delete-trigger-btn{background:rgba(220,38,38,.1);border:2px solid rgba(220,38,38,.3);color:#dc2626;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:var(--space-sm)}.delete-trigger-btn:hover{background:rgba(220,38,38,.15);border-color:rgba(220,38,38,.5);color:#b91c1c}.delete-trigger-btn:disabled{opacity:.6;cursor:not-allowed}.delete-confirm-section{background:rgba(220,38,38,.05);border:1px solid rgba(220,38,38,.2);border-radius:var(--radius-lg);padding:var(--space-lg)}.delete-warning{margin-bottom:var(--space-lg)}.delete-warning p{margin:0 0 var(--space-sm);color:var(--text-primary);font-size:.9rem;line-height:1.5}.delete-warning p:last-child{margin-bottom:0}.delete-warning strong{color:#dc2626;font-weight:600}.delete-warning ul{margin:var(--space-sm) 0 var(--space-md);padding-left:var(--space-lg);color:var(--text-secondary)}.delete-warning li{margin-bottom:var(--space-xs)}.public-warning{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-top:var(--space-md);font-size:.85rem}.public-warning strong{color:#d97706}.delete-confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-md)}.cancel-delete-btn,.confirm-delete-btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:var(--space-xs)}.cancel-delete-btn{background:var(--surface-light);border:2px solid var(--border);color:var(--text-secondary)}.cancel-delete-btn:hover{border-color:var(--text-muted);color:var(--text-primary);background:var(--surface)}.confirm-delete-btn{background:linear-gradient(135deg,#dc2626,#b91c1c);border:2px solid transparent;color:white;box-shadow:var(--shadow-md)}.confirm-delete-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#ef4444,#dc2626)}.cancel-delete-btn:disabled,.confirm-delete-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-md);padding-top:var(--space-xl);border-top:1px solid var(--border);margin-top:var(--space-2xl)}.cancel-btn,.update-btn{padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-full);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:var(--space-sm);min-width:140px;justify-content:center}.cancel-btn{background:var(--surface-light);border:2px solid var(--border);color:var(--text-secondary)}.cancel-btn:hover{border-color:var(--text-muted);color:var(--text-primary);background:var(--surface)}.update-btn{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:2px solid transparent;color:white;box-shadow:var(--shadow-md)}.update-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,var(--primary-light),var(--primary))}.cancel-btn:disabled,.update-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:spin 1s linear infinite}.update-icon{font-size:1.1rem}@media (max-width:768px){.edit-character-modal-overlay{padding:var(--space-md)}.edit-character-modal-container{max-height:95vh}.edit-character-modal-header{padding:var(--space-xl) var(--space-xl) var(--space-md)}.edit-character-modal-header h2{font-size:1.5rem}.edit-character-form{padding:var(--space-xl);padding-top:var(--space-md)}.form-layout{grid-template-columns:1fr;gap:var(--space-xl)}.form-left{order:1}.form-right{order:0}.image-preview{width:150px;height:150px}.form-actions{flex-direction:column-reverse}.cancel-btn,.update-btn{width:100%}}@media (max-width:480px){.edit-character-modal-header{padding:var(--space-lg) var(--space-lg) var(--space-sm)}.edit-character-form{padding:var(--space-lg);padding-top:var(--space-sm)}.privacy-options{gap:var(--space-sm)}.privacy-option{padding:var(--space-sm)}}.character-grid-container{padding:var(--space-xl) 0;padding-top:0;position:relative}.character-grid-header{text-align:center;margin-bottom:var(--space-3xl);position:relative}.character-grid-header h1{font-size:2.5rem;color:var(--text-primary);margin-bottom:var(--space-md);font-weight:700;background:linear-gradient(135deg,var(--text-primary),var(--text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.character-grid-header p{font-size:1.125rem;color:var(--text-secondary);margin-bottom:var(--space-xl);max-width:600px;margin-left:auto;margin-right:auto}.create-character-btn{position:absolute;top:0;right:0;background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;padding:12px 24px;border-radius:25px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 15px rgba(102,126,234,.3)}.create-character-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(102,126,234,.4)}.plus-icon{font-size:1.2rem;font-weight:700}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:var(--space-2xl);margin-top:var(--space-xl)}.character-card{background:var(--surface);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-lg);transition:all .4s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;border:1px solid var(--border);backdrop-filter:blur(10px);width:100%;min-height:406px;display:flex;flex-direction:column}.character-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--primary),var(--secondary));opacity:0;transition:opacity .3s ease;border-radius:inherit}.character-card:hover:before{opacity:.05}.character-card:hover{transform:translateY(-12px) scale(1.02);box-shadow:var(--shadow-2xl);border-color:var(--primary)}.character-image{width:100%;height:0;padding-bottom:100%;overflow:hidden;position:relative;background:linear-gradient(135deg,var(--surface-light),var(--surface-lighter));flex-shrink:0}.character-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}.character-card:hover .character-image img{transform:scale(1.08)}.character-info{padding:calc(var(--space-lg) * .7);position:relative;z-index:2}.character-content,.character-info{flex:1;display:flex;flex-direction:column;min-height:0}.character-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:calc(var(--space-sm) * .7)}.character-name{font-size:1.1rem;font-weight:700;color:var(--text-primary);line-height:1.3;background:linear-gradient(135deg,var(--text-primary),var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.privacy-badge{font-size:.85rem;padding:calc(var(--space-xs) * .7) calc(var(--space-sm) * .7);border-radius:var(--radius-full);font-weight:500;display:flex;align-items:center;gap:calc(var(--space-xs) * .7);flex-shrink:0}.privacy-badge.private{background:rgba(156,163,175,.15);color:var(--text-muted);border:1px solid rgba(156,163,175,.3)}.privacy-badge.public{background:rgba(34,197,94,.15);color:var(--green);border:1px solid rgba(34,197,94,.3)}.character-personality{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin-bottom:calc(var(--space-lg) * .7);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1;min-height:3.15em;max-height:4.5em}.character-stats{justify-content:space-between;font-size:.75rem;color:var(--text-muted);padding-top:calc(var(--space-md) * .7);border-top:1px solid var(--border);margin-top:auto;flex-shrink:0;min-height:1.75em}.character-stats,.chat-count{display:flex;align-items:center}.chat-count{gap:calc(var(--space-xs) * .7);background:rgba(99,102,241,.1);padding:calc(var(--space-xs) * .7) calc(var(--space-sm) * .7);border-radius:var(--radius-full);color:var(--primary-light);font-weight:500}.created-by{font-style:italic;color:var(--text-muted)}.character-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(236,72,153,.15));backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;transition:all .4s cubic-bezier(.4,0,.2,1);border-radius:inherit}.character-card:hover .character-overlay{opacity:1}.overlay-content{text-align:center;transform:translateY(20px);transition:transform .4s cubic-bezier(.4,0,.2,1)}.character-card:hover .overlay-content{transform:translateY(0)}.edit-button-corner{position:absolute;top:calc(var(--space-sm) * .7);left:calc(var(--space-sm) * .7);background:rgba(255,255,255,.95);border:none;width:32px;height:32px;border-radius:var(--radius-full);font-size:.9rem;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-md);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10;opacity:0;transform:scale(.8);color:var(--primary)}.character-card:hover .edit-button-corner{opacity:1;transform:scale(1)}.edit-button-corner:hover{background:white;transform:scale(1.1);box-shadow:var(--shadow-lg);color:var(--primary-dark)}.save-button{position:absolute;top:calc(var(--space-sm) * .7);right:calc(var(--space-sm) * .7);background:transparent;border:none;width:36px;height:36px;border-radius:var(--radius-full);font-size:1.4rem;cursor:pointer;transition:all .3s ease;text-shadow:0 2px 4px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;z-index:10;opacity:0;transform:scale(.8);color:white}.character-card:hover .save-button{opacity:1;transform:scale(1)}.save-button:hover{transform:scale(1.15)}.save-button.saved{opacity:1;transform:scale(1);color:var(--primary)}.chat-btn{background:rgba(255,255,255,.95);color:var(--primary);border:none;padding:calc(var(--space-lg) * .7) calc(var(--space-2xl) * .7);border-radius:var(--radius-full);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-lg);backdrop-filter:blur(10px);display:flex;align-items:center;gap:calc(var(--space-sm) * .7)}.chat-btn:hover{transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-xl);background:white}.error-container,.loading-container{text-align:center;padding:var(--space-3xl) var(--space-xl);color:var(--text-primary)}.loading-spinner{width:60px;height:60px;border-top:3px solid var(--surface-light);border:3px solid var(--surface-light);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--space-lg)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.retry-btn{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;border:none;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-full);cursor:pointer;margin-top:var(--space-lg);font-weight:500;transition:all .3s ease;box-shadow:var(--shadow-md)}.retry-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,var(--primary-light),var(--primary))}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-xl);color:var(--text-secondary);max-width:500px;margin:0 auto}.empty-icon{font-size:5rem;margin-bottom:var(--space-xl);opacity:.7;filter:grayscale(.3)}.empty-state h3{font-size:1.75rem;margin-bottom:var(--space-md);color:var(--text-primary);font-weight:600}.empty-state p{font-size:1.125rem;margin-bottom:var(--space-2xl);line-height:1.6;color:var(--text-muted)}.create-first-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;padding:15px 30px;border-radius:25px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(102,126,234,.3)}.create-first-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(102,126,234,.4)}@media (max-width:1024px){.character-grid{grid-template-columns:repeat(auto-fill,minmax(224px,1fr));gap:var(--space-xl)}.character-card{min-height:calc(224px + 140px)}}@media (max-width:768px){.character-grid-container{padding:var(--space-lg) 0;padding-top:0}.character-grid-header{margin-bottom:var(--space-2xl);padding:0 var(--space-lg)}.character-grid-header h1{font-size:2rem}.character-grid-header p{font-size:1rem}.character-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-lg);padding:0 var(--space-lg)}.character-card{min-height:calc(210px + 150px)}.character-info{padding:calc(var(--space-md) * .7)}.character-name{font-size:1rem;-webkit-line-clamp:2;line-clamp:2}.character-personality{font-size:.8rem;min-height:3.6em;max-height:4.8em;-webkit-line-clamp:4;line-clamp:4}}@media (max-width:480px){.character-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-md);padding:0 var(--space-md)}.character-card{margin:0 auto;max-width:100%;min-height:calc((100vw - 2 * var(--space-md) - var(--space-md)) / 2 + 150px);max-height:calc(180px + 190px)}.character-info{padding:calc(var(--space-md) * .7)}.character-name{font-size:.95rem;-webkit-line-clamp:2;line-clamp:2}.character-personality{font-size:.75rem;min-height:3em;max-height:4.5em;-webkit-line-clamp:3;line-clamp:3}.character-stats{flex-direction:column;gap:calc(var(--space-xs) * .7);align-items:flex-start;font-size:.7rem}.hero-stats{gap:var(--space-lg)}.stat-number{font-size:1.5rem}}.filter-pills{display:flex;gap:var(--space-md);margin-bottom:var(--space-xl);padding:0 var(--space-lg)}.pill{padding:10px 20px;border-radius:20px;border:none;background:var(--surface);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.pill:hover{background:var(--surface-light);transform:translateY(-1px);box-shadow:var(--shadow-md)}.pill.active{background:linear-gradient(135deg,#667eea,#764ba2);color:white;box-shadow:0 4px 15px rgba(102,126,234,.3)}.pill.active:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(102,126,234,.4)}@media (max-width:768px){.filter-pills{padding:0 var(--space-md)}}