/* Shared corrections for touch screens, long content and fixed controls. */
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
input,textarea,select,button{max-width:100%}
textarea{resize:vertical}
.page-head>*,.titlebar>*,.dialoghead>*,.dialogfoot>*,.settings-grid>*,.two>*,.stats>*,.taskrow>*,.workspace>*{min-width:0}
.card,.panel,.note,.bubble,.voice-selection{overflow-wrap:anywhere}
.dialog,.modal{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.modal-back>section{padding:24px;border-radius:18px;border:1px solid var(--nr-line,var(--line,#dce2ed));color:var(--nr-ink,var(--ink,#202430))}
.modal-back label{display:grid;gap:7px}.modal-back .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.modal-back select{width:100%;min-height:44px;padding:9px;color:inherit;background:var(--nr-surface,var(--surface,#fff));border:1px solid var(--nr-line,var(--line,#dce2ed));border-radius:8px}
.calendar{grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar .day,.calendar .weekday,.calendar .ev{min-width:0;overflow:hidden;text-overflow:ellipsis}
.voice-picker-fields{min-width:0}
.voice-picker-label select{min-width:0;text-overflow:ellipsis}
.voice-picker-actions{display:flex;flex-wrap:wrap;gap:9px}
.nr-speech{grid-column:1/-1;--surface:var(--nr-surface,#fff);--surface-2:var(--nr-surface-raised,#f5f7fc);--line:var(--nr-line,#dae0ee);--ink:var(--nr-ink,#1d2840)}
.nr-speech label{display:grid;gap:8px;margin:14px 0;font-size:13px}.nr-speech .nr-consent{display:flex;align-items:flex-start;line-height:1.6}.nr-consent input{width:18px;flex:0 0 18px;margin-top:3px}
.nr-speech :is(select,input:not([type=checkbox]),textarea){width:100%;min-height:44px;padding:10px;font:inherit;color:inherit;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.nr-speech .voice-picker-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.nr-speech .voice-selection{padding:14px;background:var(--surface-2);border-radius:10px;margin:10px 0}.nr-speech .voice-selection p{margin:6px 0;font-size:13px}.nr-speech .voice-style-description{margin-top:12px}
.nr-speech audio{width:100%;margin:16px 0}.nr-speech details{margin-top:16px}.nr-speech summary{cursor:pointer}
body.dark .modal-back{--surface:var(--nr-surface,#151e30);--ink:var(--nr-ink,#e5eaff);color:var(--ink)}
.voice-service-notice{padding:12px;border-radius:9px;background:var(--surface-2,#eef2fc);line-height:1.65}
:focus-visible{outline:2px solid var(--brand,var(--nr-accent,#5571db));outline-offset:3px}
@media(max-width:1024px){
 .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .page-head,.titlebar{flex-wrap:wrap;gap:12px}
 .page-head>.row,.titlebar>.toolbar{flex-wrap:wrap;max-width:100%}
}
@media(max-width:680px){
 input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px}
 .two,.settings-grid,.dashboard-bottom{grid-template-columns:minmax(0,1fr)}
 .nr-speech .voice-picker-fields{grid-template-columns:minmax(0,1fr);gap:0}
 .toolbar{flex-wrap:wrap;gap:8px}
 .dialog,.modal{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
 .dialogfoot{flex-wrap:wrap;gap:10px}
 .dialogfoot>.toolbar{flex:1 1 auto}
 .calendar .day{padding:7px 3px;min-height:75px}
 .calendar .weekday{padding:10px 2px;font-size:10px;text-align:center}
 .calendar .ev{display:block;font-size:10px;white-space:nowrap}
 .taskrow{gap:8px}.taskrow .muted{overflow-wrap:anywhere}
 #player{flex-wrap:wrap;gap:8px;max-width:100vw;max-height:min(45dvh,300px);overflow-y:auto;padding-bottom:max(10px,env(safe-area-inset-bottom))}
 #player :is(.p-info,.p-main,.p-right){min-width:0;max-width:100%}
 #player :is(select,.vsel){max-width:calc(50vw - 20px);min-width:0}
 #player audio,audio[controls]{max-width:100%}
 .sidebar.open{overflow-y:auto;max-height:100dvh;padding-bottom:max(20px,env(safe-area-inset-bottom))}
 .header .search{min-width:0;flex:1}.header .search input{width:100%}
 .login-form{min-width:0;padding:24px!important}
 #phpVoiceList .voice-picker-actions .btn{min-height:44px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:480px){.header .badge{display:none}}

.modal-back #audioClose{align-self:flex-start;flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:0}
.modal-back label:has(#audioConsent){display:flex;align-items:flex-start;gap:10px;line-height:1.6}
.modal-back #audioConsent{width:18px;min-width:18px;flex:0 0 18px;margin:3px 0 0}
@media(max-width:1024px){.header .badge{display:none}}

/* Keep book title and errors readable while voice preferences occupy their own row. */
#player{flex-wrap:wrap;width:min(960px,calc(100vw - var(--sidebar,250px) - 32px));gap:8px}
#player .pinfo{flex:1 1 140px;min-width:0}
#player .psub{white-space:normal;overflow-wrap:anywhere;line-height:1.45}
#player .pbtn{width:44px;height:44px}
#player .play{width:46px;height:46px}
#player #pClose,#player [data-ruler-toggle]{order:1}
#player .player-preferences{order:2;flex:1 0 100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 80px 110px;gap:8px;min-width:0}
#player :is(#pVoice,#pStyle,#pSpeed,#pQuality){display:block;width:100%;max-width:none;min-width:0;height:40px;margin:0}
@media(max-width:900px){#player{width:calc(100vw - 20px)}}
@media(max-width:600px){#player .pinfo{flex-basis:100px}#player .player-preferences{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#player .player-preferences select{font-size:13px}#player .ptitle{font-size:12px}}
.rd-top,.rd-stage{min-width:0}.rd-top .rd-title{flex:1 1 0;min-width:0}.rd-cols p{overflow-wrap:anywhere}
@media(max-width:600px){.rd-top{gap:4px;padding:8px}.rd-top .iconbtn{flex:0 0 32px;width:32px;height:40px}.rd-top #rdListen{flex:0 0 40px;min-width:40px;padding:8px}.rd-top #rdListen span{display:none}body.reading #player{bottom:max(10px,env(safe-area-inset-bottom))}}
