.ca-dialog{width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid #dce2e4;border-radius:18px;color:#26373b;background:#fff;box-shadow:0 20px 70px #15282d33}.ca-dialog::backdrop{background:#17292d66}.ca-dialog-head{display:flex;justify-content:space-between;gap:20px;padding:24px 26px 18px;border-bottom:1px solid #e7ebed}.ca-dialog-head h2{font-size:22px;margin:0}.ca-dialog-head p{margin:8px 0 0;color:#647479;line-height:1.5}.ca-close{align-self:flex-start;border:0;background:none;font-size:28px;line-height:1;color:#647479;cursor:pointer}.ca-dialog-body{padding:22px 26px;overflow:auto;max-height:calc(100dvh - 170px)}.ca-auth-form{display:grid;gap:18px}.ca-auth-form label{display:grid;gap:8px;font-size:14px;font-weight:600}.ca-auth-form input[type=email],.ca-auth-form input[type=password]{width:100%;padding:12px;border:1px solid #ccd7da;border-radius:9px;box-sizing:border-box;font:inherit;font-weight:400}.ca-auth-form .ca-confirm{display:flex;align-items:flex-start;gap:10px;font-weight:400;line-height:1.5}.ca-confirm input{margin-top:4px}.ca-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:16px}.ca-mail-state{padding:13px 16px;border:1px solid #e8dcc0;border-radius:10px;background:#fff9ed;color:#785b2c;line-height:1.5}.ca-users-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.ca-table-wrap{overflow-x:auto}.ca-users{width:100%;border-collapse:collapse;font-size:14px}.ca-users th,.ca-users td{padding:12px 8px;vertical-align:top;text-align:left;border-bottom:1px solid #e5e9eb}.ca-users th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#66757a}.ca-users small{display:block;font-size:12px;color:#66757a;margin-top:5px}.ca-users td:last-child{min-width:150px}.ca-users .btn{margin:0 0 7px}.ca-muted{font-size:13px;color:#66757a;line-height:1.55}.ca-mode-chip{display:inline-flex;align-items:center;border:1px solid #dbe4e4;border-radius:99px;background:#f1f6f5;color:#335958;padding:6px 10px;font-size:12px;white-space:nowrap}.ca-mode-chip[data-admin=true]{background:#f7e8ef;border-color:#ebc8d8;color:#9a2455}.cu-session-control{display:flex;align-items:center;gap:8px}.cu-session-control button{border:0;background:none;color:inherit;font:inherit;font-size:12px;padding:6px 8px;cursor:pointer}.ca-login-request{margin-top:18px;border:0;background:none;color:#446b6a;font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}.ca-status-message{font-size:13px;line-height:1.5;color:#66757a}@media(max-width:600px){.ca-dialog-head{padding:20px}.ca-dialog-body{padding:18px 20px}.ca-dialog-head h2{font-size:19px}.ca-actions .btn{flex:1}.cu-session-control{gap:2px}.cu-session-control .ca-mode-chip{font-size:11px;padding:5px 8px}.ca-users-head{align-items:flex-start}.cu-session-control button{max-width:100px;line-height:1.25}.ca-users td:last-child{min-width:130px}}

.ca-notifications{padding-left:20px}.ca-notifications li{padding:5px 0 12px;border-bottom:1px solid #e5e9eb}.ca-notifications p{margin:0 0 5px}.ca-notifications time{font-size:12px;color:#66757a}.ca-notification-count{background:#b73563;color:#fff;border-radius:20px;padding:2px 5px;font-size:10px}.ca-notification-count[hidden]{display:none}#campus-integre .cu-session-control{margin-left:auto}#campus-integre .cu-session-control+.cu-campus-nav{margin-left:0}@media(max-width:580px){#campus-integre .cu-session-control{grid-column:1/-1;margin:0;justify-self:start}#campus-integre .cu-campus-nav .ca-notifications-button{flex:none;padding:10px}}

.cu-session-control .ca-notifications-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:34px}.cu-session-control .ca-notifications-button svg{width:15px;height:15px}

/* Cibles tactiles de l’accès : lien discret, zone d’activation complète. */
.ca-login-request{display:inline-flex;align-items:center;min-height:44px;padding:10px 0;line-height:1.5;text-align:left}
.ca-login-request:focus-visible,.ca-dialog button:focus-visible{outline:3px solid #8a0042;outline-offset:3px}
.ca-dialog button{min-height:44px}
.ca-dialog .ca-close{min-width:44px}

/* Les demandes sont des déclarations distinctes des comptes et habilitations. */
.ca-login-invitation{margin-top:25px;padding-top:21px;border-top:1px solid #e0e7e9}
.ca-login-invitation h3{font-size:15px;line-height:1.4;margin:0 0 12px;color:#26373b}
.ca-login-invitation form{display:grid;gap:8px}
.ca-login-invitation label{font-size:13px;font-weight:600;color:#52636b}
.ca-login-invitation input[type=email]{min-height:44px;width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #ccd7da;border-radius:7px;font:inherit;font-size:14px}
.ca-login-invitation .ca-login-request{margin-top:0;justify-self:start;min-height:44px;padding:7px 0}
.ca-request-form input[type=text]{width:100%;padding:12px;border:1px solid #ccd7da;border-radius:9px;box-sizing:border-box;font:inherit;font-weight:400;min-height:44px}
.ca-request-success h3{font-size:20px;margin:0 0 14px;color:#24734d}
.ca-request-success p{line-height:1.55}
.ca-request-list{margin-top:28px;padding-top:16px;border-top:1px solid #dce4e7}
.ca-request-list>.ca-users-head>span{font-size:12px;color:#66757a}
.ca-request-card{border:1px solid #dce4e7;border-radius:12px;padding:16px;margin:12px 0;background:#fff}
.ca-request-card-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px}
.ca-request-email{font-size:13px;margin:7px 0;overflow-wrap:anywhere;color:#52636b}
.ca-request-state{font-size:12px;line-height:1.4;border-radius:5px;padding:4px 8px;background:#f2f5f6;color:#52636b}
.ca-request-state[data-status=pending]{background:#fff7e9;color:#785b2c}
.ca-request-state[data-status=approved]{background:#eaf4ed;color:#24734d}
.ca-request-state[data-status=rejected]{background:#faebef;color:#9a2455}
.ca-request-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
@media(max-width:600px){.ca-request-card{padding:14px}.ca-request-card-actions .btn{flex:1 1 auto}.ca-request-card-heading strong{overflow-wrap:anywhere}.ca-login-invitation{margin-top:22px}}

.ca-users .ca-user-actions .btn{margin:0 8px 8px 0}
.ca-user-identity{overflow-wrap:anywhere}
@media(max-width:600px){
 .ca-table-wrap{overflow:visible}
 .ca-users{display:block;width:100%;min-width:0}
 .ca-users thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .ca-users tbody{display:block;width:100%}
 .ca-users tbody tr{display:block;min-width:0;margin:0 0 14px;padding:14px;border:1px solid #e0e6e9;border-radius:10px;background:#fff}
 .ca-users tbody td{display:grid;grid-template-columns:48px minmax(0,1fr);gap:9px;width:100%;min-width:0;padding:7px 0;border:0;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
 .ca-users tbody td::before{content:attr(data-label);color:#66757a;font-size:11px;font-weight:500;line-height:1.7}
 .ca-users tbody .ca-user-identity{display:block;padding-top:0;padding-bottom:12px;margin-bottom:5px;border-bottom:1px solid #e7ebed}
 .ca-users tbody .ca-user-identity::before{display:none}
 .ca-user-identity strong{display:block;font-weight:600}
 .ca-users .ca-user-identity small{font-size:11px}
 .ca-users tbody .ca-user-actions{display:flex;flex-direction:column;gap:8px;padding-top:10px}
 .ca-users tbody .ca-user-actions:empty{display:none}
 .ca-users .ca-user-actions .btn{width:100%;min-height:44px;margin:0;white-space:normal;text-align:center;font-size:12px}
 .ca-users tbody td[colspan]{display:block}
 .ca-users tbody td[colspan]::before{display:none}
}
.ca-activation-person{display:flex;flex-direction:column;gap:7px;padding:16px;background:#edf4f6;border-radius:10px;overflow-wrap:anywhere}
.ca-activation-person strong{font-size:18px}.ca-activation-person small{color:#4e6570}
.ca-activation-link-label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#45545d}
.ca-activation-link-label input{display:block;width:100%;min-width:0;box-sizing:border-box;border:1px solid #cad4d9;border-radius:8px;min-height:44px;padding:10px;font:inherit;color:#20343e;background:#f8fafb}
.ca-activation-form .ca-actions{flex-wrap:wrap}.ca-activation-form .ca-actions button{min-height:44px}
