/* ------------------------------------------------------------------
   Portail : connexion, catalogue, back-office.
   Les jetons de couleur viennent de dashboard.css (charte OpinionWay 2025).
   ------------------------------------------------------------------ */
.pheader{background:var(--cassis);color:#fff;padding:14px 0}
.pheader .hrow{max-width:1400px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pheader a.mark{color:#fff;text-decoration:none}
.pheader .who{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:12.5px;color:rgba(255,255,255,.8)}
.pheader .who b{color:#fff;font-weight:600}
.pheader .who .btn{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.28)}
.badge{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;letter-spacing:.02em}
.badge.pub{background:#E7F3EE;color:#1E7A5F}
.badge.draft{background:var(--creme);color:#8a5a2b}
.badge.arch{background:var(--soft);color:var(--muted)}
.badge.int{background:rgba(255,255,255,.18);color:#fff}

/* ---------------- connexion ---------------- */
.login{min-height:100vh;display:grid;place-items:center;background:
  radial-gradient(1200px 600px at 20% -10%, #F3EAF3 0%, transparent 60%),
  radial-gradient(900px 500px at 110% 10%, var(--creme) 0%, transparent 55%), #fff}
.login .box{width:min(460px, calc(100% - 40px));background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:30px;box-shadow:0 24px 60px rgba(43,27,49,.12)}
.login .mark{font-size:26px;font-weight:700;color:var(--cassis);letter-spacing:-.02em}
.login .mark span{color:var(--framboise)}
.login h1{font-size:19px;margin:18px 0 6px;color:var(--ink)}
.login p.sub{font-size:13px;color:var(--muted);margin:0 0 22px}
.login .btn.big{width:100%;padding:12px 14px;font-size:14px;display:flex;align-items:center;justify-content:center;gap:10px}
.login .sep{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11.5px;margin:20px 0;
  text-transform:uppercase;letter-spacing:.06em}
.login .sep:before,.login .sep:after{content:"";height:1px;background:var(--line);flex:1}
.login input[type=email]{width:100%;padding:11px 12px;font-size:14px}
.login .msg{margin-top:14px;font-size:12.5px;padding:10px 12px;border-radius:8px}
.login .msg.ok{background:#E7F3EE;color:#1E7A5F}
.login .msg.err{background:#FFF1F3;color:#8a2340}
.login .foot{margin-top:22px;font-size:11.5px;color:var(--muted);line-height:1.5}

/* ---------------- catalogue ---------------- */
.cat{max-width:1400px;margin:0 auto;padding:26px 20px 70px}
.cat h1{font-size:22px;color:var(--cassis)}
.cat .intro{color:var(--muted);font-size:13.5px;margin:6px 0 22px}
.toolsrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.toolsrow input[type=text]{min-width:260px}
.clientgroup{margin-bottom:26px}
.clientgroup h2{font-size:15px;color:var(--cassis);margin-bottom:10px;display:flex;align-items:center;gap:10px}
.clientgroup h2 .pill{font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.study{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);
  border-left:4px solid var(--cassis);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);
  transition:transform .12s, box-shadow .12s}
.study:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(43,27,49,.12)}
.study.draft{border-left-color:var(--p13)}
.study.arch{border-left-color:var(--p6);opacity:.75}
.study .code{font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.study h3{font-size:15px;margin:6px 0 4px;color:var(--ink)}
.study .meta{font-size:12px;color:var(--muted);line-height:1.5}
.study .row2{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.empty{background:var(--soft);border:1px dashed var(--line);border-radius:var(--radius);padding:26px;text-align:center;color:var(--muted)}

/* ---------------- back-office ---------------- */
.admin{max-width:1400px;margin:0 auto;padding:22px 20px 70px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap}
.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 14px;cursor:pointer;
  font-weight:600;color:var(--muted);font-size:13.5px}
.tabs button.on{color:var(--cassis);border-bottom-color:var(--framboise)}
.admin table td.act{white-space:nowrap;text-align:right}
.admin td,.admin th{text-align:left}
.admin th.mod{text-align:left}
.admin .form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin:6px 0 16px}
.admin code{background:var(--soft);padding:2px 6px;border-radius:5px;font-size:12px}
.admin pre{background:var(--ink);color:#F3EAF3;padding:14px 16px;border-radius:10px;overflow:auto;font-size:12px;line-height:1.55}
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--p4);border-top-color:var(--cassis);
  border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}
.loading{padding:60px 20px;text-align:center;color:var(--muted)}

/* ---------- connexion par mot de passe ---------- */
.login input[type=email],.login input[type=password]{width:100%;padding:11px 12px;font-size:14px;margin-top:8px}
.login form{display:flex;flex-direction:column}

/* ---------- accès : mot de passe généré, affiché une seule fois ---------- */
.pwdcard{background:var(--creme);border:1px solid var(--p4);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.pwdcard .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--muted)}
.pwdcard .pwdmail{font-size:14px;font-weight:600;color:var(--cassis);margin-top:4px}
.pwdcard .pwdrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.pwdcard code{font-family:"Cascadia Mono",Consolas,"SF Mono",monospace;font-size:20px;letter-spacing:.06em;
  background:#fff;border:1px solid var(--p4);border-radius:8px;padding:8px 14px;color:var(--ink);user-select:all}
.pwdcard .hint{font-size:11.5px;color:var(--muted);margin-top:10px;line-height:1.5;font-style:italic}
.card2{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}
.card2 .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--muted);
  margin-bottom:6px}
.admin table td small{color:var(--muted)}
.warn{background:#FFF7F8;border:1px solid var(--p14);color:#8a2340;border-radius:8px;padding:9px 12px;
  font-size:12px;margin:12px 0}

/* ---------- étude livrée en page autonome ---------- */
.pagehead{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;max-width:1400px;margin:0 auto;padding:22px 20px 14px}
.pagehead .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--muted)}
.pagehead h1{font-size:20px;color:var(--cassis);margin:4px 0 0}
.pagehead .qs{font-size:12px;color:var(--muted);margin-top:4px}
.pagehead .tools{margin-left:auto;display:flex;gap:8px}
.pageframe{display:block;width:100%;border:0;border-top:1px solid var(--line);height:calc(100vh - 168px);background:#fff}
