/* Salle112 : espace élève vert et espace enseignant bleu, sans modification des traitements PHP. */
body:has(.s112-auth){background:#f6fcf8;color:#193856}
body:has(.s112-auth.teacher){background:#f8fbff}
.s112-auth{--accent:#247a49;--soft:#eaf8ee;--border:#acd5b8;--dark:#1e653e;
  width:min(1040px,calc(100% - 36px));margin:clamp(18px,4vh,55px) auto 48px;color:#193856}
.s112-auth.teacher{--accent:#22609e;--soft:#eaf3ff;--border:#b7d3ef;--dark:#173c70}
.s112-auth-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}
.s112-auth-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:1.16rem;font-weight:900;color:#173b69}
.s112-auth-brand img{width:40px;height:40px;object-fit:contain}
.s112-auth-brand b{color:#2f8a45}
.s112-auth-home{border:1px solid #cbd9e4;background:#fff;border-radius:12px;padding:10px 14px;text-decoration:none;font-weight:800;color:#244d75;min-height:43px;display:inline-flex;align-items:center}
.s112-auth-home:hover,.s112-auth-home:focus-visible{background:#eef4fc}
.s112-auth-frame{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.05fr);gap:0;background:#fff;border:1px solid #dbe5ea;border-radius:26px;box-shadow:0 20px 48px rgba(21,53,76,.075);overflow:hidden}
.s112-auth-intro{padding:clamp(22px,4vw,48px);background:linear-gradient(150deg,var(--soft),#fff);display:flex;flex-direction:column;justify-content:center;gap:12px}
.s112-auth-role{display:inline-flex;align-items:center;align-self:start;gap:8px;padding:8px 12px;background:#fff;border:1px solid var(--border);border-radius:100px;color:var(--accent);font-weight:900;font-size:.84rem}
.s112-auth-intro h1{font-size:clamp(2rem,3.3vw,3rem);margin:0;color:var(--dark);line-height:1.08;letter-spacing:-.04em}
.s112-auth-intro p{color:#4a6477;line-height:1.6;margin:0;font-size:1.02rem}
.s112-auth-help{margin-top:16px;font-size:.88rem!important;color:#577082!important}
.s112-auth-form{padding:clamp(22px,4vw,48px);display:flex;flex-direction:column;justify-content:center;min-width:0}
.s112-auth-form h2{font-size:1.36rem;margin:0 0 20px;color:var(--dark);letter-spacing:-.025em}
.s112-auth-form .stack{gap:14px}
.s112-auth-form label{display:grid;gap:7px;font-size:.91rem;font-weight:800;color:#294961}
.s112-auth-form input:not([type=hidden]){width:100%;min-width:0;min-height:49px;border:1px solid #bccfdb;border-radius:11px;background:#fff;font-size:1rem;padding:11px 13px}
.s112-auth-form input:focus-visible{outline:3px solid var(--border);outline-offset:2px;border-color:var(--accent)}
.s112-auth-form button.primary{width:100%;min-height:49px;border-radius:12px;background:var(--accent);font-weight:900}
.s112-auth-form button.primary:hover{background:var(--dark)}
.s112-auth-form .auth-create-account{min-height:45px;border-radius:12px;color:var(--accent);border-color:var(--border);font-weight:800}
.s112-auth-form .auth-create-account:hover{background:var(--soft)}
.s112-auth-shortcuts{display:flex;align-items:center;justify-content:center;gap:10px 17px;flex-wrap:wrap;margin:19px 0 0;font-size:.87rem;line-height:1.4}
.s112-auth-shortcuts a{color:var(--accent);font-weight:800;text-underline-offset:3px}
.s112-auth-form .pin-note{background:var(--soft);border-radius:11px;color:var(--dark);padding:11px 13px;margin:0 0 17px;line-height:1.5}
.s112-auth-form .alert{margin:0 0 16px}
@media(max-width:750px){
 .s112-auth{width:min(510px,calc(100% - 24px));margin:14px auto 38px}
 .s112-auth-frame{grid-template-columns:1fr;border-radius:20px}
 .s112-auth-intro{padding:22px 23px 17px;gap:10px}
 .s112-auth-intro h1{font-size:1.85rem}
 .s112-auth-intro p{font-size:.91rem;line-height:1.47}
 .s112-auth-help{display:none}
 .s112-auth-form{padding:16px 23px 25px}
 .s112-auth-form h2{font-size:1.13rem;margin-bottom:13px}
 .s112-auth-top{margin-bottom:13px}
 .s112-auth-home{padding:9px 11px;font-size:.82rem}
}
@media(max-width:360px){.s112-auth-brand{font-size:1rem}.s112-auth-brand img{width:34px;height:34px}}
