@import url('/premium-tokens.css');
/* Shared presentation layer. Domain state, API contracts and permissions are unchanged. */
:root{font-family:var(--by-font);color:var(--by-text);background:var(--by-bg)}
body{background:var(--by-bg);color:var(--by-text)}
button,input,select,textarea{font-family:inherit;font-size:14px}
/* Minimum target size also covers inherited compact controls and dialog actions. */
button{min-width:44px;min-height:var(--by-control-height,44px)}
input:not([type=checkbox]):not([type=radio]),select,textarea{border-color:var(--by-control-border);border-radius:var(--by-radius-field);min-height:var(--by-control-height)}
label{font-size:14px;line-height:1.5}
.primary{background:var(--by-primary);color:var(--by-on-primary)}
.primary:hover:not(:disabled){background:var(--by-primary-hover)}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--by-focus);outline-offset:3px}
aside button:focus-visible,aside a:focus-visible,aside summary:focus-visible{outline-color:#b3c2df}
.muted{color:var(--by-text-muted)}
.login-card{color:var(--by-text)}
.login-card input{border-color:var(--by-control-border)}
.password-field{position:relative;display:flow-root;margin:24px 0}.login-card .password-field label{display:block;margin:0}.login-card .password-field input{width:100%;box-sizing:border-box;padding-right:58px}.password-visibility{position:absolute;right:4px;bottom:4px;display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--by-link);cursor:pointer}.password-visibility:hover{background:var(--by-primary-soft)}.password-visibility svg{width:22px;height:22px}.password-visibility .eye-slash{display:none}.password-visibility[data-visible=true] .eye-slash{display:block}
.login-card .primary{min-height:48px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:0ms!important;transition-duration:0ms!important}}
