/* 목소리 등록 창(2026-10-12): 실시간 녹음 · 파일 올리기. 유족 앱·관리자 콘솔 공통(js/voice-recorder.js). */
.voice-rec .seg { margin-bottom: 12px; }
.voice-rec .rec-btn { margin: 6px auto; }
.voice-tabs { margin-bottom: 12px; }
.voice-panel { margin-bottom: 4px; }
.level { height: 10px; border-radius: 999px; background: var(--bg-3); overflow: hidden; margin: 8px auto 4px; max-width: 320px; border: 1px solid var(--line); }
.level i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #6f8f6a, #c9a66b); transition: width .08s linear; }
.level i.loud { background: linear-gradient(90deg, #c9a66b, #9a3124); }
.drop { display: flex; flex-direction: column; gap: 4px; align-items: center; text-align: center; padding: 26px 16px; border: 1.5px dashed var(--line-strong); border-radius: 4px; background: var(--surface); cursor: pointer; }
.drop:hover, .drop.over { border-color: var(--accent); background: var(--bg-2); }
.drop b { font-size: 17px; color: var(--ink); }
.voice-items { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.voice-items li { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.voice-items li.muted { display: block; border-style: dashed; }
.voice-items .vi-name { font-weight: 600; overflow-wrap: anywhere; }
.voice-items audio { grid-column: 1 / -1; width: 100%; height: 40px; }
.voice-items button { grid-column: 2; grid-row: 1; min-height: 40px; }
.progress { height: 8px; border-radius: 999px; background: var(--bg-3); overflow: hidden; margin: 10px 0; }
.progress i { display: block; height: 100%; width: 0; background: var(--accent); transition: width .2s linear; }
@media (prefers-reduced-motion: reduce) { .level i, .progress i { transition: none; } }
