{"version":"2026.11-2","base":100,"hygiene_modifiers":{"headers.csp_missing":-25,"headers.csp_unsafe_inline":-20,"headers.csp_permissive":-10,"headers.hsts_missing":-20,"headers.hsts_short":-10,"headers.nosniff_missing":-5,"headers.clickjacking":-20,"headers.referrer_policy_missing":0,"cookies.insecure_flags":-20,"cors.reflected_origin":-10,"cors.reflected_with_credentials":-50,"transport.http_not_redirected":-20},"grades":[{"min":100,"grade":"A+"},{"min":90,"grade":"A"},{"min":85,"grade":"A-"},{"min":80,"grade":"B+"},{"min":70,"grade":"B"},{"min":65,"grade":"B-"},{"min":60,"grade":"C+"},{"min":50,"grade":"C"},{"min":45,"grade":"C-"},{"min":40,"grade":"D+"},{"min":30,"grade":"D"},{"min":25,"grade":"D-"},{"min":0,"grade":"F"}],"gates":{"critical_confirmed":{"max_score":24,"grade":"F"},"high_confirmed":{"max_score":59,"grade":"C"}},"notes":["Nota final = mínimo entre a higiene e o teto do gate.","Achado 'possível' não aciona gate; higiene não aciona gate.","Cada modificador de higiene conta uma vez por regra."]}