/* Shared interaction helpers: never changes an existing page palette. */
.ui-password-field {position:relative;display:block;min-width:0;width:100%;}
.ui-password-field>input {width:100%;padding-right:48px;}
.ui-password-toggle {position:absolute;top:50%;right:4px;display:grid;width:36px;min-width:36px;height:36px;min-height:36px;margin:0;padding:0;place-items:center;transform:translateY(-50%);border:0;border-radius:8px;background:transparent;color:var(--ng-member-ui-muted,var(--color-muted,var(--admin-text-soft,#5e6b82)));cursor:pointer;}
.ui-password-toggle svg {display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9;}
.ui-password-toggle:hover {color:var(--ng-member-ui-accent,var(--color-primary,var(--admin-accent,#3268f3)));background:color-mix(in srgb,currentColor 9%,transparent);}
.ui-password-toggle:focus-visible {outline:2px solid var(--ng-member-ui-accent,var(--color-primary,var(--admin-accent,#3268f3)));outline-offset:1px;}
.ui-field-message {display:block;margin:4px 0 0;color:var(--color-error,var(--admin-danger,#b92b46));font-size:var(--font-xs,12px);line-height:1.5;}
.ui-password-hint {display:block;margin:4px 0;color:var(--color-muted,var(--admin-text-soft,#5e6b82));font-size:var(--font-xs,12px);line-height:1.5;}
.ui-field-message[hidden],.ui-password-hint[hidden] {display:none;}
[aria-invalid="true"] {border-color:var(--color-error,var(--admin-danger,#b92b46));}
.ui-network-status {position:fixed;z-index:12000;inset:max(8px,env(safe-area-inset-top)) 12px auto;margin:0 auto;width:fit-content;max-width:calc(100% - 24px);display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--color-border,var(--admin-border,#dfe6f0));border-radius:var(--radius-md,12px);background:var(--color-surface,var(--admin-surface,#fff));color:var(--color-text,var(--admin-text,#172033));box-shadow:var(--shadow-md,0 8px 24px rgb(20 35 60 / .1));font-size:var(--font-sm,13px);}
.ui-network-status button {min-height:32px;padding:4px 8px;border:1px solid var(--color-border,var(--admin-border,#dfe6f0));border-radius:var(--radius-sm,8px);background:var(--color-secondary,var(--admin-surface-soft,#f4f7fb));color:var(--color-text,var(--admin-text,#172033));cursor:pointer;}
.ui-network-status[hidden] {display:none;}
@media(max-width:600px) { .ui-password-field>input {font-size:16px;} }
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto;} .ui-network-status {transition:none;} }
