/* Rotter'Dev — V1.1 : compléments de l'espace client propres au site (états réels absents des maquettes). 2026-11-07
   Les maquettes restent la référence : espace.css et connexion.css sont copiés tels quels depuis maquettes/v1-1/. */

/* Statuts manquants dans la maquette : Nouveau (contour blanc), Refusé (gris barré) */
.ec-statut.nouveau { color: #fff; background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.45); }
.ec-statut.refuse { color: rgba(245,245,247,.55); background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.12); text-decoration: line-through; }
.ec-statut.refuse i { background: rgba(245,245,247,.35); }

/* Les cartes ne s'élargissent jamais au-delà de leur colonne (titres longs) */
.ec-projets { grid-template-columns: minmax(0, 1fr); }
.ec-projet, .ec-cote { min-width: 0; }
.ec-projet { grid-template-columns: minmax(0, 1fr); }
/* En-tête : boutons à droite sur ordinateur, comme la maquette */
.ec-qui, .ec-qui > div { min-width: 0; }
@media (min-width: 961px) { .ec-tete { flex-wrap: nowrap; } .ec-actions { flex: none; } }

/* Avatar Discord réel */
.ec-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }

/* Titres de projet longs : coupés avec « … » */
.ec-projet-haut > div { min-width: 0; }
.ec-projet h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ec-tuile-date { font-size: clamp(1.25rem, 2.4vw, 1.75rem) !important; }

/* Aucune demande */
.ec-grille-vide { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.ec-vide { display: grid; justify-items: start; gap: 14px; padding: 32px; border-radius: 26px; background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.015)); border: 1px dashed rgba(233,211,166,.3); }
.ec-vide h3 { margin: 0; font: 600 1.375rem var(--f-titre); letter-spacing: -.02em; color: #fff; }
.ec-vide p { margin: 0; max-width: 44ch; font-size: .9375rem; line-height: 1.55; color: rgba(245,245,247,.65); }

/* Moyens de paiement : un vrai formulaire par moyen */
.ec-moyen-form { margin: 0; }

/* Mon compte */
.ec-ligne form { margin: 0; }
.ec-mdp-form .ec-aide-form { grid-column: 1 / -1; font-size: .75rem; color: rgba(245,245,247,.5); }
.ec-mdp-form.ec-trois { grid-template-columns: 1fr 1fr; }
.ec-mdp-form.ec-trois .a-btn { grid-column: 1 / -1; justify-self: start; }
.ec-bas-actions form { margin: 0; }
.ec-bouton-lien { background: none; border: 0; padding: 0; font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; min-height: 44px; }
.ec-bouton-lien:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Connexion : messages d'erreur sous les champs, bouton Discord dans un vrai formulaire */
.cx-champ.erreur input { border-color: rgba(255,138,155,.7); }
.cx-aide.cx-erreur { color: #FF8A9B; }
.cx-form-discord { width: 100%; display: grid; }
.cx-large.charge, .ec-petit.charge { opacity: .8; cursor: progress; }

/* Toasts du serveur au-dessus de la navigation V1.1 */
.page-espace .toast, .page-connexion .toast { z-index: 60; }

@media (max-width: 960px) { .ec-grille-vide { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .ec-mdp-form.ec-trois { grid-template-columns: 1fr; }
  .ec-vide { padding: 22px; }
  .ec-projet h3 { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}

/* Case « J’accepte… » : le texte et ses liens restent une seule phrase */
.cx-case-texte { font-weight: 400; }

/* Mot de passe oublié (2026-11-07) : la colonne du panneau ne dépasse jamais sa largeur (sinon les cartes .cx-options sont rognées sur téléphone) */
.cx-seule .cx-panneau { grid-template-columns: minmax(0, 1fr); }
.cx-seule .cx-options { grid-template-columns: minmax(0, 1fr); }
.cx-seule .cx-options li > div { min-width: 0; }
.cx-seule .cx-options .cx-large { width: 100%; max-width: 100%; }
.cx-seule .cx-options .cx-large svg { flex: none; }
/* Bot Rotter'Dev (2026-11-08) : ticket fermé par l'équipe, badge discret */
.ec-statut.ec-ferme { color: rgba(245,245,247,.7); background: rgba(255,255,255,.03); border-color: rgba(255,255,255,.14); margin-left: 6px; }
.ec-statut.ec-ferme i { background: rgba(245,245,247,.4); }

/* ---------- V12 (2026-11-08) : espace noir et blanc, accents or ---------- */
/* Panneau « Mon compte » : « Se déconnecter » est un vrai formulaire (POST + csrf), affiché comme les liens voisins */
.nh-cascade .ea-deco { margin: 0; }
.nh-cascade .ea-deco button { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-align: left; }
.nh-cascade.nh-petit .ea-deco button { font-size: .9375rem; color: rgba(245,245,247,.7); }
.nh-cascade .ea-deco button:hover { color: #fff; }
/* Photo Discord dans la pastille et la carte du compte */
.ea-profil-photo img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
/* Toasts : point doré dans l'espace (jamais de rose) */
body.ea-app .toast .rose, body.ea-portail-page .toast .rose { color: var(--a-or, #C9A86A); }
/* Page Paiements : la colonne de gauche empile ses blocs */
.ec-colonne { display: grid; gap: 22px; align-content: start; min-width: 0; }
/* 2026-11-08 : adresse de facturation (Mon compte), même style que les champs */
.ec .cx-champ textarea { width: 100%; min-height: 92px; padding: 12px 16px; border-radius: 14px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); color: #fff; font: inherit; font-size: .9375rem; line-height: 1.5; resize: vertical; }
.ec .cx-champ textarea:focus { outline: none; border-color: rgba(255,255,255,.55); box-shadow: 0 0 0 4px rgba(255,255,255,.08); }
.ec .cx-champ textarea::placeholder { color: rgba(245,245,247,.3); }

/* 2026-11-08 soir : suivi après acceptation (or pendant la réalisation, blanc une fois livré, comme « Accepté ») */
.ec-statut.en-realisation { color: #F2E6CC; background: rgba(201,168,106,.15); border-color: rgba(201,168,106,.45); }
.ec-statut.en-realisation i { background: #C9A86A; box-shadow: 0 0 10px rgba(201,168,106,.8); }
.ea-app .ec-statut.livre, .ec-statut.livre { color: #0A0A0B; background: #FFFFFF; border-color: transparent; }
.ea-app .ec-statut.livre i, .ec-statut.livre i { background: #0A0A0B; }
