/* Prevent double-tap page zoom; component gesture rules still take priority. */
:where(html,body,body *){touch-action:manipulation}
.browser-hint{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:12px;max-width:calc(100% - 24px);padding:9px 12px;background:#171717;color:#ddd;border:1px solid #444;border-radius:12px;box-shadow:0 4px 20px #0004;font:12px/1.4 Arial,sans-serif}.browser-hint[hidden]{display:none}.browser-hint>span{white-space:nowrap}.browser-hint button{border:0;background:none;color:#f9ff40;font:inherit;cursor:pointer;padding:5px;white-space:nowrap}.browser-hint button:last-child{font-size:21px;color:#bbb}.browser-help{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(430px,calc(100% - 28px));max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);overflow:auto;border:1px solid #444;border-radius:20px;background:#111;color:#eee;padding:24px;font:14px/1.6 Arial,sans-serif;box-shadow:0 20px 80px #0008}.browser-help::backdrop{background:#000a}.browser-help h2{margin:0 0 12px;font-size:24px;line-height:1.2;color:#fff}.browser-help p{margin:0 0 16px;color:#bbb;font-size:14px;line-height:1.6}.browser-help button{box-sizing:border-box;display:block;width:100%;padding:13px;margin:10px 0;border-radius:10px;font:700 14px Arial,sans-serif;cursor:pointer}.browser-help .browser-primary{background:#f9ff40;color:#111;border:0}.browser-help .browser-secondary{background:#222;color:#eee;border:1px solid #444}.browser-help input{box-sizing:border-box;width:100%;background:#090909;border:1px solid #444;border-radius:8px;padding:12px;font:16px Arial,sans-serif;color:#eee}.browser-help .browser-help-status{font-size:12px;margin:12px 0}.browser-help-status:empty{display:none}

.browser-help-trigger{display:block;margin:10px auto;padding:8px;border:0;background:none;color:#f9ff40;font:13px Arial,sans-serif;text-decoration:underline;cursor:pointer}.browser-help-trigger[hidden]{display:none}
/* Center modal popups in the visible screen, including in-app toolbars and
   keyboard panning. Relative-positioned dialogs otherwise use page layout. */
dialog[open]:not(.onboarding):not(.partay-select-menu){position:fixed;inset:calc(var(--partay-view-top,0px) + 12px) calc(100% - var(--partay-view-left,0px) - var(--partay-view-width,100vw) + 12px) calc(100% - var(--partay-view-top,0px) - var(--partay-view-height,100dvh) + 12px) calc(var(--partay-view-left,0px) + 12px);height:fit-content;margin:auto;box-sizing:border-box;max-width:calc(var(--partay-view-width,100vw) - 24px);max-height:calc(var(--partay-view-height,100dvh) - 24px);overflow-y:auto;overscroll-behavior:contain}
dialog.onboarding[open]{inset:auto;top:var(--partay-view-top,0px);left:var(--partay-view-left,0px);width:var(--partay-view-width,100vw);height:var(--partay-view-height,100dvh);max-height:var(--partay-view-height,100dvh);margin:0}
