:root{--fg:#111;--muted:#666;--bg:#fff;--card:#fff;--border:#e6e6e6;--link:#0b5fff;}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--fg)}
.top{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg)}
.brand{font-weight:700}
.nav a{margin-right:10px;color:var(--link);text-decoration:none}
.nav a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:18px auto;padding:0 18px;display:grid;gap:14px}
.card{border:1px solid var(--border);border-radius:10px;padding:14px;background:var(--card)}
.k{color:var(--muted)}
code{background:#f6f6f6;border-radius:6px;padding:2px 6px}
.row{display:flex;gap:10px;align-items:center;margin:6px 0}
.row .k{min-width:78px}
.tip{margin-top:10px;color:var(--muted)}
.form{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.formCol{display:grid;gap:10px;margin-bottom:10px}
input{flex:1;min-width:180px;padding:8px 10px;border-radius:8px;border:1px solid var(--border)}
select{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg)}
button{padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:#f8f8f8;cursor:pointer}
button:hover{background:#f2f2f2}
button.primary{background:#0b5fff;color:#fff;border-color:#0b5fff}
button.primary:hover{background:#0a53e6}
.table{width:100%;border-collapse:collapse;margin-top:8px}
.table th,.table td{border-bottom:1px solid #eee;padding:8px 6px;text-align:left;vertical-align:top}
.table th{color:var(--muted);font-weight:600}
.badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:#f6f6f6;color:#333;margin-left:8px}
.small{font-size:12px;color:var(--muted)}
.actions a{margin-right:10px}

.sectionTitle{margin:14px 0 6px 0;font-size:16px}
.configRaw textarea{width:100%;min-height:320px;resize:vertical;padding:10px 12px;border-radius:8px;border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5}

.prewrap{white-space:pre-wrap;word-break:break-word}

.modal{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:18px;z-index:1000}
.modal.preview{background:rgba(0,0,0,0.5)}
.modalCard{width:min(520px, 100%);border:1px solid var(--border);border-radius:12px;background:var(--card);padding:14px}
.hidden{display:none}

.configCard{width:min(980px, 100%);max-height:92vh;overflow-y:auto}
.configModalHeader{justify-content:space-between}
.configSection{margin-top:12px;padding-top:8px;border-top:1px solid #eee}
.voiceRow{display:flex;gap:8px;align-items:center;flex:1}
.voiceRow select{flex:0 0 220px}
.voiceRow input{flex:1}

.previewCard{width:min(720px, 100%);max-height:90vh;overflow-y:auto}
.error{color:#d32f2f}
.previewHeader{display:flex;gap:14px;margin-bottom:12px}
.previewCover{width:120px;height:160px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
.previewInfo{flex:1}
.previewInfo h4{margin:0 0 8px 0}
.previewStats{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--muted);margin-top:8px}
.previewStats>span{padding:4px 0}
.previewDesc{margin-bottom:12px;padding:10px;background:#f9f9f9;border-radius:8px;font-size:14px;line-height:1.6}
.previewTags{margin-bottom:12px}
.previewTags .badge{margin-right:6px;margin-bottom:6px;display:inline-block}
.previewChapters{margin-bottom:12px;padding:10px;background:#f9f9f9;border-radius:8px;font-size:14px}
.previewRange{margin-bottom:12px}
.previewRange label{display:flex;flex-direction:column;gap:6px}
.previewRange input{width:100%}
.previewActions{display:flex;gap:10px;justify-content:flex-end}

