.premium-voice-dialog { width: min(34rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow: auto; box-sizing: border-box; border: 1px solid #b6aa91; border-radius: 1rem; padding: 1.5rem; color: #14234a; background: #fbf8ef; }
.premium-voice-dialog::backdrop { background: #14234ab3; }
.premium-voice-dialog h2 { margin-top: 0; }
.premium-voice-dialog p { line-height: 1.5; }
.premium-voice-dialog textarea { display: block; width: 100%; box-sizing: border-box; margin-top: .5rem; padding: .75rem; font: inherit; border: 1px solid #64748b; border-radius: .5rem; color: #14234a; background: white; }
.premium-consent { display: flex; gap: .5rem; align-items: start; line-height: 1.5; }
.premium-consent input { margin-top: .3rem; width: 1.1rem; height: 1.1rem; flex-shrink: 0; }
.premium-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.premium-actions button { min-height: 44px; padding: .6rem 1rem; border: 1px solid #334d86; border-radius: .5rem; background: white; color: #14234a; font: inherit; cursor: pointer; }
.premium-actions .premium-generate { color: white; background: #244cb4; }
.premium-actions button:disabled { opacity: .6; cursor: default; }
.premium-voice-dialog :focus-visible { outline: 3px solid #855300; outline-offset: 3px; }
.premium-voice-dialog audio { width: 100%; margin-top: .75rem; }
.premium-voice-dialog [hidden], #premium-voice-pilot[hidden] { display: none !important; }
.paid-voice-launch { min-height:44px; margin:0 0 1rem; padding:.65rem 1rem; border:1px solid currentColor; border-radius:12px; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.premium-voice-dialog .results section { display:grid; gap:.5rem; margin:1rem 0; border-top:1px solid #888; padding-top:.75rem; }
.premium-voice-dialog .results audio { width:100%; }
.premium-voice-dialog button { min-height:44px; }

.listening-budget { font-family: 'Inter', system-ui, sans-serif; font-size: 1rem; line-height: 1.5; width: min(30rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); box-sizing: border-box; overflow: auto; padding: 1.5rem; border: 1px solid #d6cfbd; border-radius: 1.5rem; background: #fbf8ef; color: #14234a; box-shadow: 0 24px 80px #14234a33; }
.listening-budget::backdrop { background: #14234a99; }
.listening-budget header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; position: sticky; top: -1.5rem; background: #fbf8ef; z-index: 1; padding-top: .25rem; }
.listening-budget h2 { font: 600 1.75rem/1.2 Georgia, serif; margin: .2rem 0 .75rem; }
.listening-budget .eyebrow { font-size: .7rem; letter-spacing: .13em; font-weight: 700; margin: 0; color: #425982; }
.listening-budget .intro { margin: 0 0 1rem; }
.listening-budget button, .listening-budget select, .gemini-budget-bar button { min-height: 44px; font: inherit; border: 1px solid #8a97ad; border-radius: .75rem; padding: .6rem .9rem; background: transparent; color: inherit; cursor: pointer; }
.listening-budget .dismiss { flex: 0 0 44px; padding: 0; border: 0; font-size: 1.7rem; }
.listening-budget .balance { background: #e9eedf; border-radius: .75rem; padding: .65rem .9rem; font-weight: 600; }
.listening-budget .budget-label { display: block; font-weight: 600; margin: 1rem 0 .4rem; }
.listening-budget select { width: 100%; background: #fff; }
.listening-budget .budget-help, .listening-budget .pricing { font-size: .875rem; color: #43516b; }
.listening-budget .consent { display: flex; gap: .75rem; align-items: flex-start; margin: 1rem 0; cursor: pointer; }
.listening-budget input { width: 1.2rem; height: 1.2rem; flex-shrink: 0; margin: .2rem 0; accent-color: #244cb4; }
.listening-budget .actions { display: grid; gap: .6rem; }
.listening-budget .start { background: #244cb4; color: white; border-color: #244cb4; font-weight: 600; }
.listening-budget button:disabled { opacity: .55; cursor: default; }
.listening-budget details { margin-top: 1.2rem; border-top: 1px solid #d6cfbd; padding-top: .75rem; }
.listening-budget summary { min-height: 44px; display: list-item; align-content: center; cursor: pointer; }
.listening-budget :focus-visible, .gemini-budget-bar :focus-visible { outline: 3px solid #855300; outline-offset: 3px; }
.listening-budget .feedback:empty { display: none; }
.gemini-budget-bar { max-width: 24rem; font-size: .875rem; }
.gemini-budget-bar p { margin: .5rem 0; }
.gemini-budget-bar[hidden] { display: none; }
