/* Shared visual controls. Keep 44px touch targets and established theme colors. */
.p8-root.p8-v4 :is(.p8-page-body,.p8-admin-dialog) .btn:not(.home-event-button),
html:root .login-page .btn{border-radius:14px;box-shadow:none;font-weight:500;letter-spacing:0;min-height:44px;line-height:1.35}
.p8-root.p8-v4 :is(.p8-page-body,.p8-admin-dialog) .btn:not(.btn-primary):not(.btn-danger):not(.btn-ghost):not(.home-event-button),
html:root .login-page .btn-secondary{background:color-mix(in srgb,var(--text-primary) 4%,var(--bg-surface));border-color:color-mix(in srgb,var(--text-primary) 14%,transparent);color:var(--text-primary)}
.p8-root.p8-v4 :is(.p8-page-body,.p8-admin-dialog) .btn.btn-primary,
html:root .login-page .btn-primary{background:var(--accent-fill);border-color:var(--accent-edge);color:var(--on-accent)}
.p8-root.p8-v4 :is(.p8-page-body,.p8-admin-dialog) .btn.btn-icon{border-radius:50%}
.p8-root.p8-v4 :is(.p8-page-body,.p8-admin-dialog) .btn:focus-visible,
html:root .login-page .btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}
@media(max-width:700px){
 .p8-root.p8-v4 :is(.p8-page-body,.p8-admin-dialog) .btn:not(.home-event-button),
 html:root .login-page .btn{font-size:13px;padding:8px 12px;min-height:44px;height:auto}
 .p8-root.p8-v4 :is(.p8-page-body,.p8-admin-dialog) .btn.btn-icon{width:44px;height:44px;padding:10px;flex:none}
 .p8-root.p8-v4 .voice-button{box-shadow:none;border-radius:16px;font-weight:500}
 .p8-root.p8-v4 .voice-entry{grid-template-columns:56px minmax(0,1fr) 56px!important}
 .p8-root.p8-v4 .voice-workspace.mobile-voice .voice-entry>.voice-button{min-height:48px!important;height:48px;padding:5px 4px!important;gap:2px;font-weight:500;line-height:1.2}
 .p8-root.p8-v4 .voice-workspace.mobile-voice .voice-entry>.voice-button span{line-height:1.2}
 .p8-root.p8-v4 .voice-entry>.primary{border-radius:18px}
 .p8-root.p8-v4 .voice-start-mic[aria-pressed="true"]{border-color:color-mix(in srgb,var(--v-accent) 45%,var(--v-line))}
 .p8-root.p8-v4 .voice-workspace.mobile-voice .voice-control-buttons>.voice-button{min-height:56px;height:56px;padding:4px 2px;gap:2px;line-height:1.2}
 .p8-root.p8-v4 .voice-workspace.mobile-voice .voice-control-buttons>.voice-button svg{width:18px;height:18px}
}
.p8-root .sheet[aria-hidden="true"]{pointer-events:none}
.p8-root:not(.sheet-open) .scrim{pointer-events:none}
@media(min-width:701px){.voice-workspace .voice-entry>.voice-button{padding:10px 12px;font-size:12px}.voice-workspace .voice-entry>.voice-button>svg{display:none}}
.voice-nav-people{display:flex;align-items:center;justify-content:center;flex:none;min-height:24px}
.voice-nav-avatar{position:relative;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--bg-canvas);font-size:8px;font-weight:600;flex:none}
.voice-nav-avatar+.voice-nav-avatar{margin-left:-10px}
.voice-nav-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.voice-nav-more{font-size:9px;margin-left:2px}
.voice-nav.has-people>.i{display:none}
@media(prefers-reduced-motion:no-preference){.voice-nav-people{animation:voice-presence-in .18s ease-out}@keyframes voice-presence-in{from{opacity:0}to{opacity:1}}}
