/* ===========================================================
   Portail « Outils d'étude » — fenêtre latérale, connexion, admin
   Mêmes couleurs que le site Cultes matinaux (thème clair bleu)
   =========================================================== */
:root{
  --pl-bg:#eaf2fb; --pl-surface:#ffffff; --pl-line:#d8e4f1; --pl-line-soft:#e8f0f8;
  --pl-text:#1d2b3f; --pl-muted:#5d6e84; --pl-faint:#8a99ac;
  --pl-blue:#2f6fb3; --pl-blue-deep:#245a92; --pl-blue-soft:#e7f1fb; --pl-gold:#c9a24b;
  --pl-red:#b23b3b; --pl-red-soft:#fdecec;
  --pl-shadow:0 8px 24px rgba(36,90,146,.10); --pl-shadow-lg:0 20px 50px rgba(29,43,63,.22);
}

/* ---------- Bouton d'ouverture (flottant, en haut à gauche) ---------- */
.pl-ouvrir{
  position:fixed;top:14px;left:14px;z-index:40;
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px 9px 11px;border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.92);backdrop-filter:blur(6px);
  border:1px solid var(--pl-line);color:var(--pl-blue-deep);
  font:600 .86rem/1 'Inter',system-ui,sans-serif;box-shadow:var(--pl-shadow);
  transition:border-color .2s, box-shadow .2s, transform .15s;
}
.pl-ouvrir:hover{border-color:var(--pl-blue);box-shadow:0 9px 22px rgba(47,111,179,.22);transform:translateY(-1px)}
.pl-ouvrir:focus-visible{outline:2px solid var(--pl-blue);outline-offset:2px}
.pl-ouvrir svg{width:18px;height:18px}

/* ---------- Panneau ---------- */
.pl-fond{position:fixed;inset:0;z-index:60;background:rgba(29,43,63,.38);backdrop-filter:blur(2px);opacity:0;transition:opacity .25s}
.pl-fond.pl-visible{opacity:1}
.pl-panneau{
  position:fixed;top:0;left:0;bottom:0;z-index:61;width:min(310px,86vw);
  display:flex;flex-direction:column;background:var(--pl-surface);
  border-right:1px solid var(--pl-line);box-shadow:var(--pl-shadow-lg);
  transform:translateX(-102%);transition:transform .28s cubic-bezier(.2,.8,.2,1);
  font-family:'Inter',system-ui,sans-serif;color:var(--pl-text);
}
.pl-panneau.pl-ouvert{transform:none}
.pl-tete{display:flex;align-items:center;justify-content:space-between;padding:20px 18px 14px 22px;border-bottom:1px solid var(--pl-line-soft)}
.pl-titre{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.3rem;color:var(--pl-blue-deep)}
.pl-fermer{background:none;border:none;color:var(--pl-faint);font-size:1.8rem;line-height:1;cursor:pointer;padding:0 4px}
.pl-fermer:hover{color:var(--pl-text)}

.pl-sites{flex:1;overflow-y:auto;padding:12px 12px;display:flex;flex-direction:column;gap:6px}
.pl-site{
  display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;
  text-decoration:none;color:var(--pl-text);border:1px solid transparent;transition:.15s;
}
.pl-site:hover{background:var(--pl-blue-soft);border-color:rgba(47,111,179,.18)}
.pl-site.pl-actif{background:var(--pl-blue-soft);border-color:rgba(47,111,179,.3)}
.pl-ico{
  width:38px;height:38px;flex:none;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--pl-blue-deep),var(--pl-blue));color:#fff;
}
.pl-ico svg{width:19px;height:19px}
.pl-txt{display:flex;flex-direction:column;min-width:0}
.pl-nom{font-weight:600;font-size:.95rem}
.pl-desc{font-size:.78rem;color:var(--pl-muted)}

.pl-pied{border-top:1px solid var(--pl-line-soft);padding:14px 14px 18px;display:flex;flex-direction:column;gap:4px}
.pl-pied form{margin:0}
.pl-email{font-size:.78rem;color:var(--pl-faint);padding:0 10px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-lien{
  display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:9px;
  background:none;border:none;color:var(--pl-muted);font:500 .88rem 'Inter',system-ui,sans-serif;
  text-decoration:none;cursor:pointer;text-align:left;
}
.pl-lien:hover,.pl-lien.pl-actif{background:var(--pl-blue-soft);color:var(--pl-blue-deep)}
.pl-lien svg{width:17px;height:17px}

.pl-accueil-lien{margin-bottom:6px;padding-bottom:12px;border-bottom:1px solid var(--pl-line-soft);border-radius:9px 9px 0 0}

/* ---------- Page d'accueil : une carte par outil ---------- */
.pl-accueil{max-width:1100px;margin:0 auto;padding:84px 24px 64px}
.pl-accueil-tete{text-align:center;margin-bottom:40px}
.pl-accueil-tete h1{
  font-family:'Fraunces',Georgia,serif;font-weight:500;color:var(--pl-blue-deep);
  font-size:clamp(2.3rem,6vw,3.4rem);margin:0;line-height:1.1;
}
.pl-accueil-tete h1::after{
  content:'';display:block;width:56px;height:3px;border-radius:3px;background:var(--pl-gold);margin:18px auto 0;
}
.pl-accueil-tete p{color:var(--pl-muted);font-size:1.05rem;margin:16px 0 0}
.pl-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px}
.pl-carte-outil{
  display:flex;flex-direction:column;background:var(--pl-surface);border:1px solid var(--pl-line);
  border-radius:18px;overflow:hidden;text-decoration:none;color:var(--pl-text);box-shadow:var(--pl-shadow);
  transition:transform .18s, box-shadow .2s, border-color .2s;
}
a.pl-carte-outil:hover{transform:translateY(-4px);border-color:rgba(47,111,179,.5);box-shadow:0 18px 40px rgba(36,90,146,.18)}
a.pl-carte-outil:focus-visible{outline:3px solid var(--pl-blue);outline-offset:3px}
.pl-carte-visuel{
  display:grid;place-items:center;aspect-ratio:16/9;overflow:hidden;
  background:linear-gradient(135deg,var(--pl-blue-deep),var(--pl-blue));
}
.pl-carte-visuel img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
a.pl-carte-outil:hover .pl-carte-visuel img{transform:scale(1.04)}
.pl-carte-ico{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.18);color:#fff}
.pl-carte-ico svg{width:30px;height:30px}
.pl-carte-corps{display:flex;flex-direction:column;gap:4px;padding:18px 20px 20px}
.pl-carte-nom{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.35rem;line-height:1.2}
.pl-carte-desc{color:var(--pl-muted);font-size:.9rem}
.pl-carte-ouvrir{margin-top:10px;color:var(--pl-blue-deep);font-weight:600;font-size:.88rem}
.pl-carte-avenir{border:1.5px dashed #bccde2;box-shadow:none;background:rgba(255,255,255,.55);cursor:default}
.pl-carte-avenir .pl-carte-visuel{background:var(--pl-bg)}
.pl-carte-avenir .pl-carte-ico{background:var(--pl-surface);color:var(--pl-faint);border:1px dashed var(--pl-line)}
.pl-carte-avenir .pl-carte-nom{color:var(--pl-faint)}
.pl-carte-avenir .pl-carte-desc{color:var(--pl-faint)}
@media(max-width:640px){
  .pl-accueil{padding:74px 16px 48px}
  .pl-accueil-tete{margin-bottom:28px}
  .pl-cartes{gap:16px}
  .pl-carte-avenir .pl-carte-visuel{aspect-ratio:3/1}
}

/* ---------- Page de connexion / admin (pages propres au portail) ---------- */
.pl-page{
  margin:0;min-height:100vh;background:var(--pl-bg);color:var(--pl-text);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5;
}
.pl-centre{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.pl-carte{
  width:100%;max-width:420px;background:var(--pl-surface);border:1px solid var(--pl-line);
  border-radius:18px;padding:34px 32px;box-shadow:var(--pl-shadow-lg);
}
.pl-carte h1{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.9rem;color:var(--pl-blue-deep);margin:0 0 6px;text-align:center}
.pl-intro{color:var(--pl-muted);font-size:.95rem;margin:0 0 22px;text-align:center}
.pl-champ{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.pl-champ span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--pl-faint);padding-left:2px}
.pl-champ input{
  width:100%;padding:13px 15px;border-radius:11px;border:1px solid var(--pl-line);background:var(--pl-surface);
  color:var(--pl-text);font-size:1rem;outline:none;transition:border-color .2s, box-shadow .2s;
}
.pl-champ input:focus{border-color:var(--pl-blue);box-shadow:0 0 0 4px rgba(47,111,179,.14)}
.pl-champ input.pl-code{font-size:1.6rem;letter-spacing:.5em;text-align:center;font-weight:600;padding-left:.5em}
.pl-bouton{
  width:100%;display:inline-flex;justify-content:center;align-items:center;gap:9px;
  background:linear-gradient(180deg,var(--pl-blue),var(--pl-blue-deep));color:#fff;border:none;
  padding:13px 18px;border-radius:11px;font:600 .95rem 'Inter',system-ui,sans-serif;cursor:pointer;
  box-shadow:0 6px 16px rgba(47,111,179,.30);transition:transform .15s, box-shadow .2s;
}
.pl-bouton:hover{transform:translateY(-1px);box-shadow:0 9px 22px rgba(47,111,179,.40)}
.pl-secondaire{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.pl-secondaire button{background:none;border:none;color:var(--pl-blue-deep);font:500 .85rem 'Inter',system-ui,sans-serif;cursor:pointer;padding:4px 0}
.pl-secondaire button:hover{text-decoration:underline}
.pl-message{padding:11px 14px;border-radius:11px;font-size:.88rem;margin:0 0 18px}
.pl-message.pl-erreur{background:var(--pl-red-soft);border:1px solid #f3c2c2;color:var(--pl-red)}
.pl-message.pl-info{background:var(--pl-blue-soft);border:1px solid rgba(47,111,179,.3);color:var(--pl-blue-deep)}

/* ---------- Admin ---------- */
.pl-admin{max-width:1000px;margin:0 auto;padding:76px 20px 60px}
.pl-admin h1{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:2rem;color:var(--pl-blue-deep);margin:0 0 4px}
.pl-admin .pl-intro{text-align:left;margin-bottom:24px}
.pl-boite{background:var(--pl-surface);border:1px solid var(--pl-line);border-radius:14px;box-shadow:var(--pl-shadow);overflow:hidden}
.pl-ajout{display:flex;gap:10px;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid var(--pl-line-soft);align-items:center}
.pl-ajout input{flex:1 1 240px;padding:10px 13px;border-radius:10px;border:1px solid var(--pl-line);font-size:.92rem;outline:none}
.pl-ajout input:focus{border-color:var(--pl-blue)}
.pl-ajout .pl-bouton{width:auto;padding:10px 16px;font-size:.88rem}
.pl-ajout small{flex-basis:100%;color:var(--pl-faint);font-size:.78rem}
.pl-table{width:100%;border-collapse:collapse;font-size:.88rem}
.pl-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--pl-faint);font-weight:600;padding:12px 18px;border-bottom:1px solid var(--pl-line-soft)}
.pl-table td{padding:11px 18px;border-bottom:1px solid var(--pl-line-soft);vertical-align:middle}
.pl-table tr:last-child td{border-bottom:none}
.pl-table .pl-mail{font-weight:600;word-break:break-all}
.pl-table .pl-num{color:var(--pl-muted);white-space:nowrap}
.pl-etat{font-size:.74rem;padding:3px 10px;border-radius:999px;white-space:nowrap;border:1px solid}
.pl-etat-ok{color:#2d7a4b;background:#eaf7ef;border-color:#bfe3cc}
.pl-etat-bloque{color:var(--pl-red);background:var(--pl-red-soft);border-color:#f3c2c2}
.pl-etat-attente{color:var(--pl-muted);background:#f3f6fa;border-color:var(--pl-line)}
.pl-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.pl-actions form{margin:0}
.pl-mini{
  font:600 .76rem 'Inter',system-ui,sans-serif;padding:6px 11px;border-radius:8px;cursor:pointer;
  border:1px solid var(--pl-line);background:var(--pl-surface);color:var(--pl-muted);transition:.15s;
}
.pl-mini:hover{border-color:var(--pl-blue);color:var(--pl-blue-deep)}
.pl-mini-danger:hover{border-color:var(--pl-red);color:var(--pl-red);background:var(--pl-red-soft)}
.pl-vide{padding:40px 18px;text-align:center;color:var(--pl-faint)}

@media(max-width:700px){
  .pl-carte{padding:28px 22px}
  .pl-table thead{display:none}
  .pl-table tr{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:12px 16px;border-bottom:1px solid var(--pl-line-soft)}
  .pl-table td{padding:0;border:none}
  .pl-table td.pl-mail{grid-column:1 / -1}
  .pl-table td.pl-actions-td{grid-column:1 / -1;padding-top:6px}
  .pl-actions{justify-content:flex-start}
}
