/* Shared interaction helpers: never changes an existing page palette. */
.ui-skip-link {position:fixed;z-index:12001;top:max(8px,env(safe-area-inset-top));left:12px;transform:translateY(-200%);padding:10px 16px;border:2px solid currentColor;border-radius:8px;background:var(--color-surface,var(--admin-surface,#fff));color:var(--color-text,var(--admin-text,#172033));font-size:14px;line-height:1.5;text-decoration:none;}
.ui-skip-link:focus {transform:none;}
/* Attribute specificity protects the wrapper from generic label > span rules. */
.ui-password-field[data-password-control] {position:relative;display:block;min-width:0;width:100%;margin:0;}
.ui-password-field[data-password-control]>input {display:block;box-sizing:border-box;min-width:0;min-height:44px;width:100%;margin:0;padding-inline-end:48px;}
.ui-password-field[data-password-control]>.ui-password-toggle {position:absolute;inset-block:0;inset-inline-end:2px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;min-width:44px;height:auto;min-height:0;margin:0;padding:0;border:0;border-radius:var(--radius-sm,8px);background:transparent;box-shadow:none;color:var(--color-primary,var(--admin-accent,#3268f3));line-height:1;cursor:pointer;}
.ui-password-field[data-password-control]>.ui-password-toggle:focus-visible {outline:2px solid currentColor;outline-offset:-4px;}
.ui-password-toggle>svg {display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}
.ui-password-field[data-password-control]>input::-ms-reveal,.ui-password-field[data-password-control]>input::-ms-clear {display:none;}
.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[data-password-control]>input {font-size:16px;} }
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto;} .ui-network-status {transition:none;} }
