:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --viewport-height:100dvh;
}
@supports not (height:100dvh){:root{--viewport-height:100vh}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:88px}
body{min-width:0;min-height:var(--viewport-height);overflow-x:visible}
img,svg{max-width:100%;height:auto}
p,td,th,a,button,label,strong,small{overflow-wrap:anywhere}
button,a,input,select,textarea{touch-action:manipulation}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #FDB913!important;outline-offset:3px;box-shadow:0 0 0 5px rgba(0,51,102,.15)!important}
.auth-top{padding-top:max(14px,var(--safe-top));padding-right:max(clamp(18px,4vw,58px),var(--safe-right));padding-left:max(clamp(18px,4vw,58px),var(--safe-left))}
.auth-top nav a,.auth-top nav button{display:inline-flex;align-items:center;min-height:44px;padding:8px 6px}
.auth-main{min-width:0;min-height:calc(var(--viewport-height) - 88px);padding-right:max(18px,var(--safe-right));padding-bottom:max(clamp(28px,6vw,72px),var(--safe-bottom));padding-left:max(18px,var(--safe-left))}
.auth-card{min-width:0;max-width:100%}
.auth-form input,.auth-form select,.auth-filters input,.auth-filters select,.auth-inline-form input{font-size:16px}
.auth-form textarea{width:100%;max-width:100%;font-size:16px;resize:vertical}
.auth-table-wrap{width:100%;max-width:100%;overflow:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.auth-table-wrap table{min-width:max-content}
.auth-actions{min-width:150px;flex-wrap:wrap}
.auth-footer{padding-right:max(18px,var(--safe-right));padding-bottom:max(18px,var(--safe-bottom));padding-left:max(18px,var(--safe-left))}
.login-page,.login-page .auth-main,.login-shell,.login-brand-panel,.login-form-panel{min-height:var(--viewport-height)}
.login-card{max-height:calc(var(--viewport-height) - var(--safe-top) - var(--safe-bottom) - 28px);overflow:auto;overscroll-behavior:contain}
.login-page .auth-messages{top:max(12px,var(--safe-top));max-height:40vh;overflow:auto}

@media(max-width:700px){
  .auth-top{display:grid;gap:8px;padding-bottom:10px}
  .auth-brand{width:100%}
  .auth-brand img{max-width:min(220px,72vw)}
  .auth-top nav{width:100%;max-width:100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .auth-top nav a,.auth-top nav form{flex:0 0 auto}
  .auth-main{padding-top:22px}
  .auth-card{padding:22px 16px}
  .auth-section-head{display:grid;align-items:stretch}
  .auth-section-head .auth-button{width:100%}
  .auth-filters,.auth-inline-form{display:grid;grid-template-columns:1fr;width:100%;max-width:none}
  .auth-filters button,.auth-inline-form button{width:100%}
  .auth-actions{display:grid;grid-template-columns:1fr;min-width:170px}
  .auth-actions a,.auth-actions button{display:flex;align-items:center;min-height:44px;width:100%;padding:8px;text-align:left}
  .auth-footer{display:grid;gap:12px}
  .auth-footer nav{display:flex;gap:12px;flex-wrap:wrap}
  .permission-grid{grid-template-columns:1fr}
}

@media(max-width:620px){
  .login-shell{display:grid;min-height:var(--viewport-height);overflow:visible}
  .login-brand-panel{min-height:clamp(190px,33dvh,255px);padding-top:max(12px,var(--safe-top))}
  .login-form-panel{min-height:auto;padding-bottom:max(34px,var(--safe-bottom))}
  .login-card{max-height:none;overflow:visible}
  .password-toggle{min-width:82px;min-height:46px}
}

@media(max-width:390px){
  .login-brand-panel{min-height:190px}
  .login-brand-copy span{display:none}
  .login-card{padding:26px 16px}
  .auth-card{padding-inline:14px}
}

@media(max-height:520px) and (orientation:landscape){
  .login-shell{grid-template-columns:minmax(220px,.7fr) minmax(360px,1fr)}
  .login-brand-panel{min-height:var(--viewport-height);clip-path:none}
  .login-brand-copy{display:none}
  .login-form-panel{min-height:var(--viewport-height);margin:0;padding:12px}
  .login-card{max-height:calc(var(--viewport-height) - 24px)}
}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
