/* Interaction states shared across the existing components. */
button,a,summary,input,select,textarea{transition:background-color var(--duration) ease,color var(--duration) ease,border-color var(--duration) ease,box-shadow var(--duration) ease}
button:disabled{cursor:not-allowed;opacity:.55}
button:not(:disabled):hover{filter:brightness(.98)}
.action:hover{background:var(--blue-soft);color:#1d4ed8;text-decoration:none}
.client-folder summary:hover{background:var(--blue-soft)}
tbody tr:hover{background:#f6f9ff}
input:focus,select:focus,textarea:focus{outline:2px solid #2563eb66;outline-offset:1px;border-color:var(--blue)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #85b1ff;outline-offset:3px}
.permission-switch:has(input:focus-visible){outline:3px solid #85b1ff;outline-offset:3px;border-radius:999px}
.smart-search:focus-within{outline:2px solid #2563eb66;outline-offset:1px;border-color:var(--blue)}
/* Login screen */
.loginbox{position:relative;overflow:visible}
.loginbox input{margin:7px 0}
.loginbox input:hover{border-color:#c7d2e0}
.loginbox .login-submit{position:relative;min-height:43px}
.loginbox .login-submit:hover:not(:disabled){background:#1d4ed8;box-shadow:0 8px 18px rgba(37,99,235,.24)}
.loginbox .login-submit.is-loading{cursor:wait;transform:none;box-shadow:none}
.login-status{min-height:20px;margin-top:10px;text-align:center;font-size:12px;font-weight:700;color:#64748b}
.login-status.success{color:#15803d}
.login-status.error{color:#b91c1c}
#loginerr{margin-top:7px;text-align:center;font-size:12px;font-weight:700;color:#b91c1c;min-height:16px}
.login-spinner{
  width:15px;height:15px;border-radius:50%;display:inline-block;vertical-align:-2px;margin-right:7px;
  border:2px solid rgba(255,255,255,.42);border-top-color:#fff;animation:ihs-login-spin .7s linear infinite;
}
@keyframes ihs-login-spin{to{transform:rotate(360deg)}}

/* Password show/hide control, used on login and any password field created later. */
.password-wrap{position:relative;width:100%}
.password-wrap>input{width:100%;padding-right:44px!important}
.password-toggle{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px!important;height:34px!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:8px!important;background:transparent!important;
  color:#64748b!important;display:grid!important;place-items:center;box-shadow:none!important;z-index:2;cursor:pointer;
}
.password-toggle:hover{background:#f1f5f9!important;color:#1f2937!important;transform:translateY(-50%)!important;box-shadow:none!important}
.password-toggle:active{transform:translateY(-50%)!important}
.password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-off-line{display:none}
.password-toggle.showing .eye-off-line{display:block}


/* No moving feedback or delayed controls for reduced-motion users. */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
