/* tts page basic css */
.tts-page{max-width:1100px;margin:20px auto}
.page-title{font-size:24px;margin-bottom:12px}
.tts-layout{display:flex;gap:20px}
.tts-left{flex:1;display:flex;flex-direction:column}
.tts-right{width:420px}
#tts-text{min-height:280px;padding:12px;font-size:14px;border:1px solid #ddd;border-radius:6px;resize:vertical}
.tts-hint{margin-top:6px;font-size:13px;color:#666}
.voice-group{margin-bottom:18px}
.group-title{font-weight:600;margin-bottom:8px}
.voice-list{display:flex;flex-wrap:wrap;gap:10px}
.voice-item{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid #eee;border-radius:8px;cursor:pointer}
.voice-item input:checked + .avatar{outline:2px solid #007bff}
.avatar{width:56px;height:56px;border-radius:50%;object-fit:cover}
.voice-meta{display:flex;flex-direction:column}
.voice-name{font-size:14px}
.btn{padding:8px 12px;border-radius:6px;border:1px solid #ccc;background:#fff;cursor:pointer}
.btn.primary{background:#007bff;color:#fff;border-color:#007bff}
.btn.small{padding:6px 8px}
.btn.tiny{padding:4px 6px;font-size:12px}
.loading-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.8);z-index:9999}
.loader{padding:18px 24px;border-radius:8px;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,0.08);font-weight:600}
.result-area{margin-top:18px;padding:12px;border:1px dashed #ddd;border-radius:8px}
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);z-index:10000}
.modal-inner{background:#fff;padding:18px;border-radius:8px;max-width:420px;text-align:center}
.wechat-qr{max-width:220px;margin:12px auto}
