/* =====================================================================
   Kezako — écrans de connexion et d'administration
   Mise en page et mesures reprises telles quelles de Friday / Field+ ;
   seules les couleurs changent, pour Kezako :
     --ardoise → Bleu Océane #0E3B5C   --accent → Rouge Kezako #E63946
   ===================================================================== */
:root{
  --ardoise:#0E3B5C; --ardoise-d:#0A2C45; --ardoise-l:#E4EDF4;
  --accent:#E63946; --white:#FFFFFF;
  --ink:#1A2433; --muted:#5A677A; --line:#D3DAE4;
  font-family:Bahnschrift,"DIN Alternate","Segoe UI",system-ui,sans-serif;
  font-size:14px; color:var(--ink);
}
*{box-sizing:border-box}
body{margin:0;background:#fff}

.auth{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.9fr) 1.1fr;background:#fff}
.solo{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px;background:var(--ardoise-l)}
.solo .acard{background:#fff;padding:34px;border-top:6px solid var(--accent);box-shadow:0 24px 50px -32px rgba(14,59,92,.5)}

.apanel{position:relative;overflow:hidden;background:var(--ardoise);color:#fff;
  padding:clamp(32px,6vw,72px);display:flex;flex-direction:column;justify-content:space-between;
  border-right:6px solid var(--accent)}
.apanel::before{content:"";position:absolute;inset:0;opacity:.14;pointer-events:none;
  background-image:linear-gradient(90deg,#fff 0 4px,transparent 4px),linear-gradient(0deg,#fff 0 6px,transparent 6px);
  background-size:118px 100%,100% 146px;background-position:-40px 0,0 60px}
.apanel>*{position:relative}

.abrand{display:flex;align-items:center;gap:18px}
.abrand .amark svg{width:72px;height:72px;display:block;border-radius:17px;box-shadow:0 0 0 2px rgba(255,255,255,.9)}
.abrand b{display:block;font-size:44px;line-height:1;font-weight:700}
.abrand b i{font-style:normal;color:var(--accent)}
.abrand div>span{display:block;font-size:15px;opacity:.8;letter-spacing:.04em}
.atag{font-size:clamp(20px,2vw,28px);line-height:1.3;max-width:15em;margin:0;font-weight:600}
.aoa{width:84px;height:84px;object-fit:contain}

.aform{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:clamp(28px,5vw,64px)}
.acard{width:100%;max-width:440px}
.acard h1{font-size:32px;color:var(--ardoise);margin:0 0 8px;line-height:1.1}
.alead{color:#3D4D63;margin:0 0 22px;line-height:1.5;font-size:15.5px}
.acard label{display:block;font-size:14px;font-weight:600;color:var(--ink);margin:0 0 14px}
.acard input,.acard select{display:block;width:100%;margin-top:6px;padding:11px 12px;font:inherit;font-weight:400;
  border:1.5px solid #C5CFDB;border-radius:0;background:#fff;color:var(--ink)}
.acard input:focus,.acard select:focus{outline:none;border-color:var(--ardoise);box-shadow:0 0 0 3px rgba(14,59,92,.15)}
.abtn{display:block;width:100%;margin-top:8px;padding:13px 16px;background:var(--ardoise);color:#fff;
  border:none;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.abtn:hover{background:var(--accent)}
.abtn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.alinks{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px}
.alink{background:none;border:none;padding:0;color:var(--ardoise);font:inherit;font-size:14.5px;
  cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.alink:hover{color:var(--accent)}
.afoot{font-size:12.5px;color:#7A8698;margin-top:28px;text-align:center}
.amsg{padding:11px 13px;font-size:13.5px;margin:0 0 18px;border:1.5px solid}
.amsg.ko{background:#FBE3E0;border-color:#E0A79F;color:#8F2A20}
.amsg.ok{background:#E4F0E8;border-color:#9FC6AC;color:#22563A}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- écrans d'administration ---------- */
.page{max-width:1120px;margin:0 auto;padding:26px 24px 70px}
.ptete{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:18px;border-bottom:3px solid var(--ardoise)}
.ptete .abrand{flex:1}
.ptete .abrand b{font-size:26px;color:var(--ardoise)}
.ptete .abrand div>span{font-size:11px;color:var(--muted);opacity:1;letter-spacing:.14em;text-transform:uppercase}
.ptete .amark svg{width:46px;height:46px;box-shadow:none;border-radius:11px}
.carte{background:#fff;border:1.5px solid var(--line);padding:22px;margin-bottom:18px}
.carte h2{margin:0 0 18px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ardoise)}
.rang{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.rang label{flex:1;min-width:165px;margin:0;font-weight:600;font-size:13px}
.rang input,.rang select{display:block;width:100%;margin-top:6px;padding:9px 10px;font:inherit;border:1.5px solid #C5CFDB;border-radius:0;background:#fff}
table.t{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
table.t th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:10px 8px;border-bottom:2px solid var(--line);white-space:nowrap}
table.t td{padding:10px 8px;border-bottom:1px solid #F0F3F4;vertical-align:middle}
table.t input,table.t select{padding:7px 9px;border:1.5px solid #C5CFDB;border-radius:0;font:inherit;font-size:12.5px;width:100%;background:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 15px;border:1.5px solid var(--line);background:#fff;color:var(--ardoise);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--ardoise-l)}
.btn.primaire{background:var(--ardoise);border-color:var(--ardoise);color:#fff}
.btn.primaire:hover{background:var(--accent);border-color:var(--accent)}
.btn.danger{color:#A33326;border-color:#E0B5AE}
.btn.danger:hover{background:#FBE3E0}
.etiq{display:inline-block;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;background:var(--ardoise-l);color:var(--ardoise);font-weight:700}
.etiq.admin{background:var(--ardoise);color:#fff}
.etiq.referent{background:#FDE6E8;color:#B3232F}
.etiq.attente{background:#FEF0DC;color:#B45309}
.actions{display:flex;gap:7px;flex-wrap:wrap}.actions form{display:inline}
code.id{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}

/* =====================================================================
   Thèmes de la page de connexion (réglage KZ_THEME_CONNEXION dans config.php)
   Même mise en page que Friday / Field+, identité propre à Kezako.
   ===================================================================== */
.filigrane{position:absolute;right:-.08em;bottom:-.28em;font:700 clamp(320px,42vw,560px)/1 Bahnschrift,"Segoe UI",system-ui,sans-serif;
  pointer-events:none;user-select:none;display:none}

/* Rouge : panneau rouge Kezako, liseré bleu, grand « ? » en filigrane */
.theme-rouge .apanel{background:var(--accent);border-color:var(--ardoise)}
.theme-rouge .apanel::before{display:none}
.theme-rouge .filigrane{display:block;color:rgba(255,255,255,.13)}
.theme-rouge .abrand b i{color:var(--ardoise)}
.theme-rouge .abrand .amark svg{box-shadow:none}
.theme-rouge .abtn:hover{background:var(--accent)}

/* Sable : panneau clair, texte bleu, « ? » rouge en filigrane */
.theme-sable .apanel{background:#F6F1E8;color:var(--ardoise);border-color:var(--accent)}
.theme-sable .apanel::before{display:none}
.theme-sable .filigrane{display:block;color:rgba(230,57,70,.12)}
.theme-sable .abrand .amark svg{box-shadow:none}
.theme-sable .abrand div>span{color:var(--muted);opacity:1}
.theme-sable .aoa{filter:brightness(.22) sepia(1) hue-rotate(170deg) saturate(3)}

/* Océane : panneau bleu, trame remplacée par les cercles de l'objectif */
.theme-oceane .apanel::before{opacity:.10;
  background-image:repeating-radial-gradient(circle at 85% 88%,#fff 0 3px,transparent 3px 46px);background-size:auto;background-position:0 0}
@media(max-width:860px){.filigrane{font-size:260px}}

@media(max-width:860px){
  .auth{grid-template-columns:minmax(0,1fr)}
  .apanel{border-right:0;border-bottom:6px solid var(--accent);gap:26px}
  .abrand .amark svg{width:58px;height:58px}
  .abrand b{font-size:34px}
  .aoa{width:66px;height:66px}
}
@media(max-width:760px){.page{padding:18px 14px 50px}table.t{display:block;overflow-x:auto;white-space:nowrap}}
