/* Gestion MLE — pages publiques (connexion, consultation de descriptif, espace client, portail prospect) :
   jetons de couleur (clair + sombre), polices IBM Plex, boutons, champs et messages communs à l'application.
   Généré par build.py à partir de part1.html — ne pas modifier à la main ; les pages gardent leurs styles propres. */
:root{
  --navy:#1F4E79; --navy-deep:#17446F; --gold:#C9962E; --gold-soft:#F3E7CD;
  --ground:#F4F6F9; --surface:#FFFFFF; --surface2:#EEF2F6; --ink:#1A2331; --muted:#5D6B7C; --line:#D6DCE4; --line-strong:#B9C3CF;
  --accent:#1F4E79; --accent-ink:#FFFFFF; --link:#1F4E79;
  --ok:#2E7D4F; --ok-bg:#E3F3EA; --warn:#9A6B0A; --warn-bg:#FBF1D6; --bad:#B03A2E; --bad-bg:#F9E2DF; --info:#1F4E79; --info-bg:#E2ECF6; --neutral-bg:#E8ECF1;
  --shadow:0 1px 2px rgba(20,30,45,.06),0 8px 24px -12px rgba(20,30,45,.18);
  --radius:6px;
  --sans:"IBM Plex Sans",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --serif:"IBM Plex Serif",Georgia,"Times New Roman",serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --navy:#7FB0E0; --navy-deep:#5E93C6; --gold:#D4A548; --gold-soft:#3A2F16;
    --ground:#0E141C; --surface:#161F2A; --surface2:#1D2836; --ink:#E4E9F0; --muted:#93A0B0; --line:#2B3746; --line-strong:#3D4B5C;
    --accent:#7FB0E0; --accent-ink:#0E141C; --link:#8FBCE8;
    --ok:#7CCB9A; --ok-bg:#173125; --warn:#E5BB5A; --warn-bg:#3A2E12; --bad:#F09A90; --bad-bg:#3E1D19; --info:#8FBCE8; --info-bg:#1B2E44; --neutral-bg:#243040;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --navy:#7FB0E0; --navy-deep:#5E93C6; --gold:#D4A548; --gold-soft:#3A2F16;
  --ground:#0E141C; --surface:#161F2A; --surface2:#1D2836; --ink:#E4E9F0; --muted:#93A0B0; --line:#2B3746; --line-strong:#3D4B5C;
  --accent:#7FB0E0; --accent-ink:#0E141C; --link:#8FBCE8;
  --ok:#7CCB9A; --ok-bg:#173125; --warn:#E5BB5A; --warn-bg:#3A2E12; --bad:#F09A90; --bad-bg:#3E1D19; --info:#8FBCE8; --info-bg:#1B2E44; --neutral-bg:#243040;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.6);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5}
a{color:var(--link)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px;box-shadow:0 0 0 4px #fff}
.bar :focus-visible,.appbar :focus-visible,.side :focus-visible{outline-color:var(--gold);box-shadow:none}
[hidden]{display:none!important}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.small{font-size:12px}
.btn{text-decoration:none;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:500;line-height:1.2;white-space:nowrap}
.btn:hover{background:var(--surface2)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#1A2331}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.sm{padding:5px 10px;font-size:12.5px}
/* Écrans tactiles : zones d'appui d'au moins 36 px pour les petits boutons, 44 px pour la navigation */
@media (hover:none){.btn.sm{min-height:36px}.btn{min-height:40px}.nav a{min-height:44px}.tabs a{min-height:44px;display:inline-flex;align-items:center}.chip button{min-width:32px;min-height:32px}.dpt input{width:20px;height:20px}}
@media (max-width:640px){.field input,.field select,.field textarea,.toolbar input[type=search],.toolbar select,.modal input,.modal select,.modal textarea{font-size:16px}}
/* Segmented control : l'onglet actif n'est pas un bouton d'action (jamais « gold ») */
.segs .btn.on{background:var(--info-bg);border-color:var(--navy);color:var(--navy);font-weight:600;box-shadow:inset 0 -2px 0 var(--navy)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--surface2)}
.btn svg{width:15px;height:15px;flex:none}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label{font-size:12px;font-weight:500;color:var(--muted)}
.field label .hint{font-weight:400;opacity:.8}
.field input,.field select,.field textarea{width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);min-width:0}
.field textarea{min-height:76px;resize:vertical;line-height:1.45}
.field input.mono,.field textarea.mono{font-family:var(--mono);font-size:13px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 18%,transparent)}
.field.req label{color:var(--navy);font-weight:600}
.field.req label::after{content:" *";color:var(--bad)}
.field.req input,.field.req select,.field.req textarea{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}
.reqlegend{font-size:12px;color:var(--muted);margin:6px 0 12px}.reqlegend b{color:var(--bad)}
.notice{padding:10px 12px;border-radius:var(--radius);font-size:12.5px;background:var(--info-bg);color:var(--info)}
.notice.warn{background:var(--warn-bg);color:var(--warn)}
.notice.bad{background:var(--bad-bg);color:var(--bad)}

.langsel{padding:5px 8px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer}
.langsel option{color:#1A2331}
@media (max-width:640px){.field input,.field select,.field textarea,input,select,textarea{font-size:16px}.btn{min-height:40px}}
