/* QUORELIX CLOUD — Harmonisation 04 — 15 octobre 2026.
   Fix ciblé : signature verticale canonique partout ; footer du site maître.
   Aucune modification des formulaires ni de la logique PHP. */

/* Ne dupliquons pas un logo alternatif sur dashboard/legal : mêmes mesures
   CSS que sur l'accueil validé (login-v2.css). */
.page-dashboard .vertical-brand,
.page-legal .vertical-brand {
  position:fixed;
  z-index:1;
  top:clamp(26px,4.5vh,45px);
  right:clamp(25px,2.7vw,48px);
  bottom:auto;
  width:clamp(120px,9vw,150px);
  height:min(72vh,520px);
  transform:none;
  pointer-events:none;
}
.page-dashboard .brand-orb,
.page-legal .brand-orb {
  position:absolute;
  top:0;
  right:clamp(43px,3.15vw,56px);
  width:clamp(29px,2.55vw,42px);
  height:clamp(29px,2.55vw,42px);
  border-radius:50%;
  background:#c38045;
}
.page-dashboard .vertical-lines,
.page-legal .vertical-lines {
  position:absolute;
  top:clamp(66px,7.9vh,78px);
  right:0;
  display:flex;
  flex-direction:row;
  gap:clamp(5px,.45vw,9px);
  align-items:flex-start;
}
.page-dashboard .brand-main,
.page-legal .brand-main {
  font-family:Inter,Arial,sans-serif;
  font-size:clamp(74px,6.2vw,103px);
  font-weight:600;
  line-height:1;
  letter-spacing:-.065em;
  color:#fff;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}
.page-dashboard .brand-tagline,
.page-legal .brand-tagline {
  display:inline;
  font-family:Inter,Arial,sans-serif;
  font-size:clamp(23px,2.02vw,34px);
  font-weight:200;
  line-height:1;
  letter-spacing:-.052em;
  color:#fff;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}

/* Footer maître : alignement 3 zones, typographie, séparateur et liens.
   Footer interne = dans le flux sous <main>; accueil = attaché au bas.
   CSS volontairement chargé sur les TROIS types de pages. */
.workspace-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  min-height:115px;
  padding:35px 0;
  color:#8f7f70;
  border-top:1px solid rgba(205,139,70,.25);
  font-family:Inter,Arial,sans-serif;
  font-size:11px;
  font-weight:400;
  line-height:1.5;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.workspace-footer .footer-motto {color:#8f7f70}
.workspace-footer .footer-links {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px 32px;
  flex-wrap:wrap;
}
.workspace-footer .footer-links a {
  color:#d49a5f;
  font-size:11px;
  font-weight:400;
  letter-spacing:.13em;
}
.workspace-footer .footer-links a:last-child {color:#9f8e7c}
.workspace-footer .footer-links a:hover {color:#f0c48b}
.workspace-footer .footer-links a:focus-visible,
.workspace-footer .cloud-languages a:focus-visible {outline:2px solid #e0a94d;outline-offset:5px}
.cloud-footer-right {display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:16px 28px}
.workspace-footer .cloud-languages {display:inline-flex;align-items:center;gap:8px;letter-spacing:.15em;font-weight:600;font-size:10px}
.workspace-footer .cloud-languages span {color:#8c7c6d}
.workspace-footer .cloud-languages a {color:#b9a89a}
.workspace-footer .cloud-languages [aria-current="page"] {color:#e6b16e}

.page-login .cloud-login-footer {
  position:fixed;
  z-index:3;
  bottom:0;
  left:0;
  right:0;
  width:100%;
  min-height:115px;
  margin:0;
  padding:35px clamp(22px,4vw,74px);
  /* On conserve le fond de la maquette sous le footer. */
  background:transparent;
}
@media(max-width:1050px) and (min-width:721px) {
  .page-dashboard .vertical-brand,.page-legal .vertical-brand {
    transform:scale(.85);
    transform-origin:top right;
  }
}
@media(max-width:1000px) {
  .workspace-footer {flex-wrap:wrap;gap:14px}
  .workspace-footer .footer-links {justify-content:flex-start}
  .cloud-footer-right {justify-content:flex-start}
}
@media(max-width:720px) {
  .page-dashboard .vertical-brand,
  .page-legal .vertical-brand {
    position:absolute;
    top:26px;
    right:22px;
    bottom:auto;
    width:140px;
    height:50px;
    transform:none;
  }
  .page-dashboard .vertical-lines,.page-legal .vertical-lines {
    position:absolute;
    top:4px;
    right:18px;
    flex-direction:row;
    align-items:center;
    gap:0;
  }
  .page-dashboard .brand-main,.page-legal .brand-main {
    writing-mode:initial;
    transform:none;
    font-size:32px;
    font-weight:600;
    letter-spacing:-.065em;
    line-height:1;
  }
  .page-dashboard .brand-tagline,.page-legal .brand-tagline {display:none}
  .page-dashboard .brand-orb,.page-legal .brand-orb {top:0;right:0;width:10px;height:10px}
  .workspace-footer {flex-wrap:wrap;gap:12px;font-size:10px;min-height:100px}
  .workspace-footer .footer-motto {display:none}
  .workspace-footer .footer-links {justify-content:flex-start;gap:8px 18px}
  .workspace-footer .footer-links a {font-size:10px}
  .page-login .cloud-login-footer {
    position:fixed;
    padding:17px 20px;
    min-height:105px;
    align-content:center;
    background:rgba(18,24,31,.25);
  }
  .page-login .cloud-footer-right {width:100%;gap:10px 18px}
  .page-login .cloud-languages {order:0}
  .page-login .footer-links {order:1;flex:1}
}
@media(max-width:520px) {
  .page-login .cloud-login-footer {gap:6px;align-content:center}
  .page-login .cloud-footer-right {gap:7px 16px}
  .page-login .cloud-footer-right .footer-links {gap:5px 12px;flex:1 1 100%}
}
@media(max-height:600px) and (min-width:721px) {
  .page-dashboard .vertical-brand,.page-legal .vertical-brand {
    transform:scale(.65);
    transform-origin:top right;
  }
  .page-login .cloud-login-footer {min-height:76px;padding-block:12px}
}
@media(prefers-reduced-motion:reduce) {
  .page-login .cloud-login-footer * {transition:none!important}
}

/* E2EE controls; inherits Quorelix theme */
.qc-crypto-card { margin: 1.2rem 0; }
.qc-crypto-card p { font-size: .9rem; line-height: 1.6; }
.qc-crypto-card input { width: min(100%, 27rem); }
.qc-crypto-row { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin:1rem 0; }
.qc-crypto-row label { display:flex; flex-direction:column; gap:.5rem; flex: 1 1 15rem; }
.qc-crypto-fp { overflow-wrap:anywhere; font-family:monospace; font-size:.8rem; padding: .7rem 0; }
.qc-crypto-alert { color:#d49a7a; }

.qc-login-error { color:#dfa6a0; margin:0.8rem auto; font-size:0.8rem; min-height:1.2em; text-align:center; max-width:350px; }
