body.acs-auth-required:not(.acs-authenticated) .topbar,
body.acs-auth-required:not(.acs-authenticated) .layout{display:none!important}
body.acs-authenticated .technicianLoginGate{display:none!important}

.technicianLoginGate{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#e8eef7 0%,#f8fafc 50%,#e2e8f0 100%)}
.technicianLoginCard{width:min(430px,94vw);background:#fff;border:1px solid #dbe4ef;border-radius:18px;padding:30px;box-shadow:0 24px 70px rgba(15,23,42,.16)}
.loginBrandMark{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:#0f766e;color:#fff;font-size:20px;font-weight:900;letter-spacing:.05em;margin-bottom:16px}
.loginBrandText span{display:block;color:#0f766e;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.loginBrandText h1{margin:5px 0 7px;color:#0f172a;font-size:25px;line-height:1.15}
.loginBrandText p{margin:0 0 20px;color:#64748b;font-size:12px;line-height:1.5}
.technicianLoginForm{display:grid;gap:13px}
.technicianLoginForm label{display:grid;gap:6px;color:#334155;font-size:11px;font-weight:800}
.technicianLoginForm input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;padding:11px 12px;background:#fff;color:#0f172a;font:inherit;outline:none}
.technicianLoginForm input:focus{border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.passwordField{position:relative;display:block}
.passwordField input{padding-right:78px}
.passwordToggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#0f766e;font-size:10px;font-weight:900;padding:6px 8px;cursor:pointer}
.passwordToggle:hover{background:#ecfdf5;border-radius:6px}
.forgotPasswordRow{display:flex;justify-content:flex-end;margin-top:-7px}
.forgotPasswordButton{border:0;background:transparent;color:#0f766e;padding:2px 0;font-size:10px;font-weight:900;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.forgotPasswordButton:hover{color:#115e59}
.loginSubmitButton{width:100%;min-height:42px;margin-top:2px}
.staffLoginState{min-height:17px;color:#166534;font-size:10px;line-height:1.4}
.staffLoginState.error{color:#b91c1c}
.legacyAccess{margin-top:15px;border-top:1px solid #e2e8f0;padding-top:12px}
.legacyAccess summary{cursor:pointer;color:#64748b;font-size:10px;font-weight:800}
.legacyAccessGrid{display:grid;gap:8px;margin-top:10px}
.legacyAccessGrid label{display:grid;gap:5px;margin:0;color:#475569;font-size:10px;font-weight:700}
.legacyAccessGrid input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px}
.legacyAccessGrid button{width:100%}

.passwordRecoveryDialog{border:0;border-radius:16px;padding:0;width:min(450px,94vw);box-shadow:0 28px 80px rgba(15,23,42,.28)}
.passwordRecoveryDialog::backdrop{background:rgba(15,23,42,.65);backdrop-filter:blur(2px)}
.passwordRecoveryCard{padding:24px;background:#fff;color:#0f172a}
.passwordRecoveryHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.passwordRecoveryHeader h2{margin:0 0 5px;font-size:20px}
.passwordRecoveryHeader p{margin:0;color:#64748b;font-size:11px;line-height:1.5}
.passwordRecoveryClose{border:0;background:#f1f5f9;color:#475569;width:32px;height:32px;border-radius:8px;font-size:20px;line-height:1;cursor:pointer}
.passwordRecoveryForm{display:grid;gap:12px}
.passwordRecoveryForm label{display:grid;gap:6px;color:#334155;font-size:11px;font-weight:800}
.passwordRecoveryForm input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;padding:11px 12px;background:#fff;color:#0f172a;font:inherit;outline:none}
.passwordRecoveryForm input:focus{border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.passwordRecoveryForm .passwordField input{padding-right:78px}
.passwordRecoveryActions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
.passwordRecoveryActions button{min-width:112px}
.passwordRecoveryMessage{min-height:18px;color:#166534;font-size:11px;line-height:1.45}
.passwordRecoveryMessage.error{color:#b91c1c}
.passwordRecoveryHint{margin:0;color:#64748b;font-size:10px;line-height:1.45}

.authenticatedTechnician{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:start!important;gap:3px!important;padding:10px 12px!important;overflow:hidden}
.technicianIdentityText{min-width:0!important;width:100%;overflow:hidden}
.technicianIdentityText span{display:block;color:#64748b;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.technicianIdentityText strong{display:block;margin-top:2px;color:#0f172a;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.authenticatedTechnician .adminPanelButton{width:100%!important;margin:7px 0 2px!important;border:1px solid #0f766e!important;border-radius:8px!important;background:#ecfdf5!important;color:#0f766e!important;padding:7px 9px!important;font-size:10px!important;font-weight:900!important;line-height:1.2!important;cursor:pointer!important;text-align:center!important;box-shadow:none!important}
.authenticatedTechnician .adminPanelButton:hover{background:#d1fae5!important;border-color:#0d9488!important;color:#115e59!important}
.authenticatedTechnician .adminPanelButton[hidden]{display:none!important}
.authenticatedTechnician .logoutButton{width:auto!important;min-width:0!important;max-width:none!important;margin:2px 0 0!important;justify-self:start!important;display:inline-block!important;border:0!important;background:transparent!important;color:#b91c1c!important;padding:0!important;font-size:10px!important;font-weight:900!important;line-height:1.2!important;white-space:nowrap!important;box-shadow:none!important;text-align:left!important}
.authenticatedTechnician .logoutButton:hover{background:transparent!important;color:#991b1b!important;text-decoration:underline!important;text-underline-offset:2px!important}

@media (max-width:640px){
  .technicianLoginGate{padding:14px}
  .technicianLoginCard{padding:22px;border-radius:14px}
  .loginBrandText h1{font-size:22px}
  .passwordRecoveryCard{padding:20px}
  .passwordRecoveryActions{flex-direction:column-reverse}
  .passwordRecoveryActions button{width:100%}
}