.login-code-form input[name=code]{max-width:12ch;letter-spacing:.2em;font-variant-numeric:tabular-nums}
.login-code-form .button-group{display:flex;flex-wrap:wrap;gap:8px}
.login-security-status{min-height:1.4em;color:#a32626}
.login-email-missing{padding:8px 12px;border-left:4px solid #b26a00;background:#fff6e5;color:#5c3700;overflow-wrap:anywhere}
.login-email-section,.login-security-settings{margin-top:24px;padding-top:16px;border-top:1px solid #dce4ec}
.login-email-section .filters,.login-security-settings .filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.login-security-settings .inline-check{display:flex;gap:8px;align-items:center}
@media(max-width:480px){.login-email-section .filters,.login-security-settings .filters{display:grid;grid-template-columns:1fr}}
.internet-access-facts{margin:8px 0;padding-left:20px;overflow-wrap:anywhere}
.internet-access-alert{padding:8px 12px;border-left:4px solid #a32626;background:#fdf1f1;color:#7a1c1c;overflow-wrap:anywhere}
.internet-access-form{margin:12px 0;align-items:flex-start}
.internet-access-form label:not(.inline-check){flex:1 1 260px;max-width:420px}
.internet-access-form input[name=host]{width:100%;box-sizing:border-box}
.internet-access-form .muted{flex-basis:100%;margin:0;overflow-wrap:anywhere}
.internet-access-form .inline-check{flex-basis:100%;align-items:flex-start}
.internet-access-prerequisites{flex-basis:100%}
.internet-access-steps{margin:8px 0;padding-left:22px;overflow-wrap:anywhere}
.internet-access-form .button-group{display:flex;flex-wrap:wrap;gap:8px;flex-basis:100%}
.internet-access-help{margin:12px 0;padding:8px 12px;border:1px solid #dce4ec;border-radius:6px;background:#f8fafc;overflow-wrap:anywhere}
.internet-access-help summary{cursor:pointer;font-weight:600;min-height:28px}
.internet-access-help summary:focus-visible{outline:3px solid #9cc9bd;outline-offset:2px}
.internet-access-help h4{margin:14px 0 4px;font-size:1rem}
.internet-access-help ol,.internet-access-help ul{margin:4px 0;padding-left:22px}
.internet-access-help li+li{margin-top:4px}
/* Protections de l'acces Internet (30 octobre) : un interrupteur par protection, aide repliee, duree d'une desactivation. */
.internet-protections{margin:12px 0}
.internet-protection-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}
.internet-protection{padding:8px 12px;border:1px solid #dce4ec;border-radius:6px;background:#fff;overflow-wrap:anywhere}
.internet-protection-reduced{border-left:4px solid #a32626;background:#fdf6f6}
.internet-protection-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.internet-protection-switch{display:flex;flex-direction:row;align-items:center;gap:10px;flex:1 1 220px;min-height:32px;margin:0;cursor:pointer;font-weight:600}
.internet-protection-switch input{appearance:none;-webkit-appearance:none;flex:none;width:42px;height:24px;margin:0;border-radius:12px;background:#8a97a5;position:relative;cursor:pointer;transition:background .15s}
.internet-protection-switch input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}
.internet-protection-switch input:checked{background:#1f7a4d}
.internet-protection-switch input:checked::after{transform:translateX(18px)}
.internet-protection-switch input:focus-visible{outline:3px solid #9cc9bd;outline-offset:2px}
.internet-protection-switch input:disabled{opacity:.55;cursor:not-allowed}
.internet-protection-state{font-size:.9rem;color:#4a5866}
.internet-protection-reduced .internet-protection-state{color:#7a1c1c;font-weight:600}
.internet-protection-info[open]{flex-basis:100%}
.internet-protection-info summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #7a8a99;border-radius:50%;cursor:pointer;font-weight:700}
.internet-protection-info summary::-webkit-details-marker{display:none}
.internet-protection-info summary:focus-visible{outline:3px solid #9cc9bd;outline-offset:2px}
.internet-protection-heading{margin:8px 0 2px;font-weight:600}
.internet-protection-info ul{margin:2px 0;padding-left:20px}
.internet-protection-info li+li{margin-top:2px}
/* The shared label stacks its content (app.css): these labels keep the text beside the control. */
.internet-protection-option,.internet-protection-duration{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0}
.internet-protection-option select,.internet-protection-duration select{flex:1 1 200px;max-width:340px;min-width:0}
.internet-access-plain{padding:8px 12px;border-left:4px solid #b26b00;background:#fff7e8;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.internet-protection-switch input,.internet-protection-switch input::after{transition:none}}
/* D081: weak password chosen by a super administrator: reason, risks, explicit choice. */
.weak-password{margin:12px 0;padding:12px 14px;border-left:4px solid #b26a00;background:#fff6e5;color:#5c3700;overflow-wrap:anywhere}
.weak-password h4{margin:0 0 6px}.weak-password ul{margin:4px 0 8px;padding-left:20px}.weak-password .muted{color:#5c3700}
