/* R23: readable controls, comfortable touch targets, and a calm voice stage. */
:root{--luwi-focus:#aa285b}
button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b33b7166;outline-offset:3px}
.homeSetup label,.homeLevelHeading label{color:#754d61}
.homeLevels button[aria-pressed=true],.homeModes button[aria-pressed=true]{border-color:#d65486;background:#fff0f6;color:#9e2354;box-shadow:inset 0 0 0 1px #d6548640}
.homeOptions{border-radius:16px;padding:0 12px}
.homeOptions[open]{background:#fff8fb;border-color:#e8c5d5}
.homeOptions summary{font-size:13px;min-height:46px}
.homeOptions[open] summary span{transform:rotate(45deg)}
.voicePersonalityHelp{margin:0 0 14px;padding:11px 12px;border-radius:13px;background:#f6edf8;color:#71536b;font-size:12px;line-height:1.6;text-wrap:pretty}
.homeUpload:focus-within{outline:3px solid #b33b7166;outline-offset:3px}
.homeUpload b{overflow-wrap:anywhere}
.homeNav button,.homeLevels button,.homeModes button{touch-action:manipulation}
.sessionShell .voiceStatus{min-width:0;width:min(100%,360px);border:1px solid #ead6e2;background:#fffafddd;padding:13px 18px;border-radius:22px;box-shadow:0 10px 30px #75385608}
.sessionShell .statusTitle{font-size:17px;line-height:1.35;color:#694156}
.sessionShell .statusSub{font-size:12px;line-height:1.5;color:#886777;white-space:normal}
.sessionShell[data-orb-phase=listening] .voiceStatus{background:#f3faf7;border-color:#d2e7dd}
.sessionShell[data-orb-phase=thinking] .voiceStatus{background:#f6f2fc;border-color:#e2d7ef}
.sessionShell .sessionCompanion{isolation:isolate}
.sessionShell .companionGround{background:radial-gradient(ellipse,#be5d822b,transparent 68%);filter:blur(6px)}
.sessionActionLabel{line-height:1.25}
.conversationPanel .bubble{line-height:1.6;overflow-wrap:anywhere}
.conversationPanel textarea{resize:vertical}
.sessionShell .voiceHint{max-width:360px;text-align:center;line-height:1.5}
@media(min-width:960px){
 .homeShell .homeWelcome{border-radius:32px}
 .homeSetup{border-radius:28px;padding:24px 28px}
 .homeSetup .homeOptionsBody .row{gap:14px}
 .sessionShell .sessionCompanion{width:300px!important}
 .sessionShell .sessionActions{margin-top:20px}
}
@media(max-width:720px){
 .homeShell{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important}
 .homeSetup{padding:14px;border-radius:23px}
 .homeShell .homeWelcome{padding:17px!important;min-height:134px}
 .homeShell .homeWelcome h1{font-size:28px}
 .homeShell .homeWelcome p{font-size:12px;max-width:190px;line-height:1.5}
 .homeSetup>label[for=targetRole],.homeLevelHeading label,.homeLanguage label,.homeOptionsBody label{font-size:12px}
 .homeSetup input:not([type=checkbox]):not([type=file]):not([type=hidden]),.homeSetup select,.homeOptionsBody input{font-size:16px;min-height:44px}
 .homeSetup>.reviewSample,.homeSetup>.formCheck{min-height:44px;font-size:12px;gap:9px}
 .homeSetup>.reviewSample input,.homeSetup>.formCheck input{width:19px;height:19px;flex:none}
 .homeLevels button{min-height:44px;font-size:13px}
 .homeModes button{min-height:50px;font-size:14px}
 .homeOptions summary{font-size:12px;min-height:46px}
 .homeNav button{font-size:11px;min-height:54px}
 .sessionShell .voiceFocus{overflow:visible;min-height:390px;height:auto;padding:10px 0 110px}
 .sessionShell .sessionCompanion{width:min(62vw,250px)!important}
 .sessionShell .voiceStatus{width:min(100% - 24px,330px);margin-top:14px}
 .sessionShell .orbIdentity span{font-size:11px}
 .sessionActionLabel{font-size:11px}
 .sessionActions{gap:5px!important;padding:7px!important}
 .sessionShell .voiceHint{font-size:12px;max-width:310px;margin:9px auto 0}
}
@media(max-width:360px){
 .homeSetup{padding:11px}
 .homeShell .homeWelcome p{max-width:150px}
 .homeOptionsBody .row{gap:8px}
 .sessionActionLabel{font-size:10px}
}
@media(max-height:580px) and (orientation:landscape){
 .sessionShell .voiceFocus{padding-bottom:90px;min-height:0}
 .sessionShell .sessionCompanion{width:132px!important}
 .sessionShell .voiceStatus{margin-top:5px;padding:9px 14px}
}
@media(prefers-reduced-motion:reduce){
 .homeOptions summary span,.sessionAction,.homeNav button{transition:none!important}
}
