/* Shared phone ergonomics. Feature layouts stay in their own modules. */
@media(max-width:760px) {
 .portal-page { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
 .portal-page :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) { font-size:var(--font-reading)!important; }
 .portal-page :is(.portal-input,.portal-select) { min-height:46px; }
 .portal-page :is(.portal-button,.portal-button.compact) { min-height:44px; max-width:100%; font-size:var(--font-body); white-space:normal; text-align:center; }
 .portal-page .portal-icon-button { min-width:44px; min-height:44px; }
 .portal-page .portal-label { font-size:var(--font-body); line-height:1.7; }
 .portal-page .portal-field-hint,.portal-page .portal-note { font-size:var(--font-small); line-height:1.8; }
 .portal-page .portal-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 32px); padding:24px 20px; overflow-y:auto; overscroll-behavior:contain; }
 .portal-page .dialog-actions { flex-wrap:wrap; }
 .portal-page .dialog-actions>.portal-button { flex:1; }
 .portal-page .portal-toast { width:max-content; max-width:calc(100% - 24px); bottom:max(16px,env(safe-area-inset-bottom)); font-size:var(--font-body); overflow-wrap:anywhere; }
 .portal-page .portal-auth-main { padding:32px 20px 40px; min-height:calc(100svh - 140px); }
 .portal-page .auth-card { width:min(100%,400px); }
 .portal-page .auth-card h1 { font-size:28px; }
 .portal-page .auth-intro { font-size:var(--font-body); }
 .portal-page .portal-simple-footer { flex-wrap:wrap; padding-bottom:max(24px,env(safe-area-inset-bottom)); line-height:1.8; }
 .portal-page .setup-choices { gap:8px; }
 .portal-page .setup-choice { min-height:44px; }
 .portal-page .setup-composer textarea { min-height:52px; }
}
