/* Annuaire des partenaires — J&S Services
   Charte reprise du site : navy #113360, orange #FF7701 */

:root{
  --navy:#113360; --navy-2:#1a4a8a; --navy-3:#0b2445;
  --orange:#FF7701; --orange-2:#ff9233; --orange-pale:#fff3e8;
  --paper:#F4F6F9; --card:#fff;
  --line:#DFE4EC; --line-2:#EDF0F5;
  --txt:#16233A; --txt-2:#5A6480; --txt-3:#939DB4;
  --green:#12855A; --green-bg:#E3F5EC;
  --amber:#B26A00; --amber-bg:#FEF3DC;
  --red:#B3261E;   --red-bg:#FBE6E4;
  --ff:'Segoe UI Variable Text','Segoe UI',ui-sans-serif,system-ui,-apple-system,Arial,sans-serif;
  --ffd:'Segoe UI Variable Display','Segoe UI',ui-sans-serif,system-ui,sans-serif;
  --ffm:'Cascadia Mono',Consolas,ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#0E1521; --card:#17202F; --line:#28344A; --line-2:#1E2939;
    --txt:#E6EBF3; --txt-2:#9BA7BD; --txt-3:#6C7A93;
    --green:#4FC48D; --green-bg:#122A22;
    --amber:#E0A33A; --amber-bg:#2B2213;
    --red:#EC7168;   --red-bg:#2C1817;
    --orange-pale:#2A1B0E; --navy:#7FA6DC;
  }
}

*{box-sizing:border-box;}
body{
  margin:0;background:var(--paper);color:var(--txt);font-family:var(--ff);
  font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;
}

/* ---------- écran centré (connexion, installation) ---------- */
.centre{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:28px 18px;
}
.boite{
  width:100%;max-width:430px;background:var(--card);border:1.5px solid var(--line);
  border-radius:16px;overflow:hidden;box-shadow:0 6px 30px rgba(17,51,96,.09);
}
.boite.large{max-width:620px;}
.boite-h{background:var(--navy-3);padding:22px 26px;display:flex;align-items:center;gap:12px;}
.boite-h .pin{
  width:34px;height:34px;background:var(--orange);border-radius:9px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.boite-h .pin svg{width:19px;height:19px;fill:#fff;}
.boite-h h1{font-family:var(--ffd);font-size:17px;font-weight:700;color:#fff;margin:0;letter-spacing:-.02em;}
.boite-h p{margin:2px 0 0;font-size:12.5px;color:rgba(255,255,255,.62);}
.boite-b{padding:24px 26px 26px;}

/* ---------- formulaire ---------- */
.champ{margin-bottom:15px;}
.champ label{
  display:block;font-family:var(--ffm);font-size:9.5px;text-transform:uppercase;
  letter-spacing:.13em;color:var(--txt-3);margin-bottom:5px;
}
.champ input, .champ select, .champ textarea{
  width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;
  font-family:var(--ff);font-size:14px;background:var(--paper);color:var(--txt);outline:none;
}
.champ input:focus, .champ select:focus, .champ textarea:focus{
  border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,119,1,.13);background:var(--card);
}
.champ .aide{font-size:11.5px;color:var(--txt-3);margin-top:4px;line-height:1.45;}
.duo{display:flex;gap:11px;}
.duo>*{flex:1;min-width:0;}

.case{display:flex;align-items:center;gap:8px;margin-bottom:17px;font-size:13.5px;color:var(--txt-2);}
.case input{width:16px;height:16px;accent-color:var(--orange);}

.btn{
  width:100%;padding:12px 18px;border:0;border-radius:9px;cursor:pointer;
  font-family:var(--ffd);font-size:14.5px;font-weight:650;
  background:var(--orange);color:#fff;transition:filter .13s;
}
.btn:hover{filter:brightness(1.07);}
.btn:disabled{opacity:.55;cursor:default;}
.btn.sec{background:transparent;color:var(--txt-2);border:1.5px solid var(--line);}

/* ---------- messages ---------- */
.msg{
  padding:11px 14px;border-radius:9px;font-size:13.5px;margin-bottom:16px;line-height:1.5;
  border-left:3px solid;
}
.msg.err{background:var(--red-bg);color:var(--red);border-color:var(--red);}
.msg.ok{background:var(--green-bg);color:var(--green);border-color:var(--green);}
.msg.info{background:var(--amber-bg);color:var(--amber);border-color:var(--amber);}
.msg ul{margin:6px 0 0;padding-left:1.1em;}
.msg code{font-family:var(--ffm);font-size:.9em;}

.pied{
  text-align:center;font-size:11.5px;color:var(--txt-3);margin-top:18px;
  font-family:var(--ffm);letter-spacing:.04em;
}
.etape{
  font-family:var(--ffm);font-size:10px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--orange);margin-bottom:14px;
}
h2.section{
  font-family:var(--ffd);font-size:15px;font-weight:700;margin:24px 0 12px;
  padding-top:18px;border-top:1px solid var(--line-2);letter-spacing:-.01em;
}
h2.section:first-of-type{border-top:0;padding-top:0;margin-top:0;}

@media (prefers-reduced-motion: reduce){*{transition:none !important;}}
