/* Text to Voice mobile UI v0.1.4. Desktop stays controlled by existing styles. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (max-width:767px), (max-width:1024px) and (pointer:coarse) and (orientation:portrait){
 :root{font-size:16px}
 body{min-width:0;margin:0;font-size:16px;line-height:1.6}
 body,input,button,textarea,select{-webkit-tap-highlight-color:transparent}
 main.wrap,body>main{width:100%;max-width:100%;margin:0 auto;padding:22px max(14px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
 .top-inner{padding:14px max(14px,env(safe-area-inset-right)) 14px max(14px,env(safe-area-inset-left));gap:10px;flex-wrap:wrap;align-items:center}
 body>header:not(.top){padding:14px;gap:10px;flex-wrap:wrap;align-items:center}
 body>header:not(.top)>strong{font-size:16px}
 .brand{font-size:18px;gap:9px}.logo{width:36px;height:36px;flex-shrink:0}.brand .tag{display:none}
 .health{font-size:12px;max-width:none;gap:6px}.dot{flex-shrink:0}
 .intro{display:block;margin:0 0 20px}.intro .wave{display:none}
 h1{font-size:27px;line-height:1.3;letter-spacing:-.6px;margin:8px 0 12px;overflow-wrap:anywhere}
 h2{font-size:17px;line-height:1.5}.eyebrow{font-size:11px;letter-spacing:1.3px}
 .intro p{font-size:14px;line-height:1.65}
 .grid{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:16px;align-items:start;margin-top:18px}
 .grid>*{min-width:0}.card{padding:18px;border-radius:14px;margin-bottom:16px;box-shadow:none}.card+.card{margin-top:16px}
 .heading{gap:8px;flex-wrap:wrap;margin-bottom:16px}.step{margin-right:6px}
 .tabs{display:flex;width:100%;max-width:100%;gap:4px;margin:0 0 16px;padding:4px;border-radius:11px}
 .tabs button{flex:1 1 0;min-width:0;padding:11px 8px;white-space:normal;line-height:1.4;font-size:14px;min-height:48px}
 input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px!important;max-width:100%;min-width:0}
 textarea.editor,textarea[name=text]{width:100%;min-height:220px;max-height:55vh;max-height:55dvh;padding:14px;line-height:1.75;resize:vertical;scroll-margin-top:20px}
 select,input[type=url],input[type=text]{min-height:48px;padding:11px 12px}
 input[type=file]{display:block;width:100%;padding:8px 0;font-size:14px!important;overflow-wrap:anywhere}
 input::file-selector-button{min-height:44px;padding:10px 12px;max-width:100%;white-space:normal}
 button,.download{min-height:44px;touch-action:manipulation;font-size:15px;line-height:1.5}
 button.submit,#save,#start{min-height:50px;font-size:16px;padding:13px 16px}
 .text-button{padding:9px 0;font-size:14px}.editor-bottom{align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
 .hint,.note,.subhint,.muted,small{font-size:13px;line-height:1.65}
 .upload{padding:15px;border-radius:10px}.upload label{font-size:15px}
 .consent{font-size:14px;line-height:1.65;gap:10px;margin:20px 0}
 input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;margin-top:3px}
 audio,video{display:block;width:100%;max-width:100%;min-width:0}video{max-height:55vh;background:#102a24}
 .status,#status{font-size:14px;line-height:1.65;overflow-wrap:anywhere}
 .progress{height:10px}.result,.empty{min-width:0}.empty{padding:18px 4px}
 .row{display:flex;flex-wrap:wrap;gap:10px}.row>button,.row>a.download{flex:1 1 130px;text-align:center;min-width:0}
 .row>.timer{flex:0 0 100%;font-size:25px;text-align:left}
 .reading{font-size:21px;line-height:1.85;margin:18px 0;overflow-wrap:anywhere}
 #source,#title,#link,.item p{overflow-wrap:anywhere}
 #consentText{font-size:14px;line-height:1.7}.item{padding:16px 0}
 .qr{display:block;width:min(100%,320px);height:auto;margin:0 auto}
 details{max-width:100%;overflow-wrap:anywhere}summary{padding:8px 0;min-height:44px;font-size:14px}
 footer{font-size:12px!important;line-height:1.8!important;padding-top:18px!important;margin-top:24px!important;overflow-wrap:anywhere}
 footer a{display:inline-block;padding:4px 0}
 .notice{font-size:12px;line-height:1.75;margin-top:18px}
 a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #2c9278;outline-offset:3px}
}
@media (max-width:360px){.brand{font-size:16px}h1{font-size:25px}.card{padding:15px}.tabs button{font-size:13px}.reading{font-size:20px}}
@media (pointer:coarse) and (max-height:500px) and (orientation:landscape){
 input:not([type=checkbox]),textarea,select{font-size:16px!important}
 button,.download{min-height:44px}
 textarea.editor{min-height:150px;max-height:65vh}
}
