/* ETHNOS R481 — trois correctifs ciblés sur base R480.
   Périmètre : uniquement les vues data-view="official-*" et l'activation
   des deux choix officiels dans l'étape Statut. */

.joinCard[data-current-view^="official-"] .joinCardBody{
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  background:#f8efe3 !important;
}

.joinCard[data-current-view^="official-"] .officialWorkspace{
  box-sizing:border-box;
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:clamp(18px,2.3vw,34px);
  color:#071826;
}

.officialIntro{
  margin-bottom:20px;
}
.officialIntro h2,
.officialReadyWorkspace h2{
  margin:7px 0 8px;
  font-family:var(--r354-title,Georgia,serif) !important;
  color:#071826 !important;
  font-size:clamp(25px,2.2vw,38px);
  line-height:1.08;
}
.officialIntro p,
.officialReadyWorkspace>p{
  max-width:900px;
  margin:0;
  color:#4f6073 !important;
  font-size:14px;
  line-height:1.55;
}

.officialGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 18px;
  align-items:start;
}
.officialFieldWide{grid-column:1 / -1;}
.officialGrid .fieldGroup{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:5px;
}
.officialGrid .fieldGroup>span{
  color:#071826 !important;
  font-size:13px;
  font-weight:700;
}
.officialGrid .fieldGroup>small{
  min-height:31px;
  color:#566575 !important;
  font-size:11px;
  line-height:1.35;
}
.officialGrid input,
.officialGrid select,
.officialGrid textarea{
  box-sizing:border-box;
  width:100%;
  border:1px solid rgba(7,24,38,.18) !important;
  border-radius:10px !important;
  background:#fffdf9 !important;
  color:#071826 !important;
  outline:none;
  box-shadow:none !important;
}
.officialGrid input,
.officialGrid select{
  min-height:44px;
  padding:0 12px;
}
.officialGrid textarea{
  min-height:86px;
  padding:11px 12px;
  resize:vertical;
  line-height:1.4;
}
.officialGrid input:focus,
.officialGrid select:focus,
.officialGrid textarea:focus{
  border-color:#ef8d56 !important;
  box-shadow:0 0 0 3px rgba(239,141,86,.14) !important;
}

.officialFooter{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(7,24,38,.12);
}
.officialFooter .joinContinue,
.officialFooter .joinBack{position:static !important; inset:auto !important;}

.officialMediaGrid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:18px;
}
.officialMediaCard{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:18px;
  align-items:center;
  min-height:190px;
  padding:18px;
  border:1px solid rgba(7,24,38,.14);
  border-radius:16px;
  background:#fff9f0;
}
.officialBannerCard{grid-template-columns:minmax(230px,.9fr) minmax(0,1fr);}
.officialMediaCard h3{margin:0 0 6px;color:#071826 !important;font-size:19px;}
.officialMediaCard p{margin:0 0 13px;color:#566575 !important;font-size:12px;line-height:1.45;}
.officialMediaPreview{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#e9dccb,#fffaf3);
  border:1px solid rgba(7,24,38,.13);
  color:#7f6e5c;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.officialLogoPreview{width:132px;height:132px;border-radius:50%;}
.officialBannerPreview{width:100%;height:132px;border-radius:13px;}
.officialMediaPreview.hasImage>span{display:none;}
.officialFileButton{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 14px;
  border-radius:9px;
  background:linear-gradient(180deg,#ffad7a 0%,#ee8d55 100%);
  border:1px solid rgba(255,211,183,.92);
  box-shadow:0 1px 0 #c96d3d,0 3px 5px rgba(0,0,0,.11);
  color:#071826 !important;
  font-family:var(--r354-ui,Arial,sans-serif) !important;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.officialFileButton input{display:none;}
.officialRemoveButton{margin-left:8px !important;min-height:38px !important;}
.officialMediaNote{
  margin:14px 0 0 !important;
  padding:11px 13px;
  border-left:3px solid #31c9c2;
  background:rgba(255,249,240,.75);
  color:#4f6073 !important;
  font-size:12px;
}

.officialReadyWorkspace{
  min-height:clamp(360px,48vh,520px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.officialReadyWorkspace .profileReadyIcon{margin:8px 0 4px;}
.officialReadyRules{
  width:min(100%,850px);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:20px 0 16px;
  text-align:left;
}
.officialReadyRules p{
  margin:0;
  padding:15px;
  border:1px solid rgba(7,24,38,.13);
  border-radius:12px;
  background:#fff9f0;
}
.officialReadyRules strong,
.officialReadyRules span{display:block;}
.officialReadyRules strong{color:#071826;font-size:13px;margin-bottom:5px;}
.officialReadyRules span{color:#566575;font-size:12px;line-height:1.4;}
.officialAgreement{
  width:min(100%,850px);
  box-sizing:border-box;
  text-align:left;
}
.officialReadyWorkspace .officialFooter{width:min(100%,850px);}

.joinCard[data-current-view="official-pending"] .joinCardBody{
  min-height:0 !important;
  overflow-y:auto !important;
  background:#f8efe3 !important;
}
.officialPendingPanel{
  min-height:clamp(320px,45vh,500px) !important;
  background:#fff9f0 !important;
  border:1px solid rgba(7,24,38,.14) !important;
}
.officialPendingStatus{
  display:flex;
  flex-direction:column;
  gap:4px;
  width:min(100%,620px);
  padding:14px 18px;
  border-radius:12px;
  background:#f3eee5;
  border:1px solid rgba(7,24,38,.12);
}
.officialPendingStatus strong{color:#176b4c;font-size:13px;}
.officialPendingStatus span{color:#071826;font-size:14px;}

/* Le choix officiel n'est plus un état indisponible. */
.joinCard[data-current-view="profile-choice"] button.profileChoiceButtonCreator.statusChoice:not(:disabled){
  cursor:pointer !important;
  opacity:1 !important;
}
.joinCard[data-current-view="profile-choice"] button.profileChoiceButtonCreator.statusChoice:not(:disabled)>b{
  color:#0e766e !important;
  background:rgba(49,201,194,.12) !important;
  border:1px solid rgba(49,201,194,.25) !important;
  border-radius:999px !important;
  padding:5px 9px !important;
  font-size:11px !important;
}

@media (max-width:980px), (max-height:760px){
  .joinCard[data-current-view^="official-"] .officialWorkspace{padding:16px 18px;}
  .officialIntro{margin-bottom:14px;}
  .officialIntro h2,.officialReadyWorkspace h2{font-size:24px;}
  .officialGrid{gap:11px 14px;}
  .officialGrid .fieldGroup>small{min-height:auto;}
  .officialMediaCard{grid-template-columns:110px minmax(0,1fr);min-height:150px;padding:13px;gap:13px;}
  .officialBannerCard{grid-template-columns:minmax(180px,.8fr) minmax(0,1fr);}
  .officialLogoPreview{width:96px;height:96px;}
  .officialBannerPreview{height:102px;}
  .officialReadyRules{margin:13px 0 10px;}
}

@media (max-width:720px){
  .officialGrid,.officialMediaGrid,.officialReadyRules{grid-template-columns:1fr;}
  .officialFieldWide{grid-column:auto;}
  .officialMediaCard,.officialBannerCard{grid-template-columns:100px minmax(0,1fr);}
  .officialBannerPreview{height:90px;}
  .officialFooter{flex-direction:column-reverse;align-items:stretch;}
  .officialFooter .joinContinue,.officialFooter .joinBack{width:100% !important;}
}

/* R479 — finalisation du parcours officiel : lisibilité, marque Officiel et recadrage logo. */
.officialReadyWorkspace .profileReadyIcon{display:none !important;}
.officialTitleMark{
  display:inline-block;
  padding:.08em .38em .12em;
  border:1px solid rgba(21,145,137,.38);
  border-radius:999px;
  background:rgba(49,201,194,.12);
  color:#0e766e !important;
  font-family:var(--r354-ui,Arial,sans-serif) !important;
  font-size:.78em;
  font-weight:800;
  letter-spacing:.02em;
  vertical-align:.08em;
}
.officialImpactLine{
  width:min(100%,850px);
  margin:2px 0 10px !important;
  color:#071826 !important;
  font-family:var(--r354-ui,Arial,sans-serif) !important;
  font-size:14px !important;
  font-weight:800 !important;
  letter-spacing:.01em;
  text-align:left;
}
.officialAgreement,
.officialAgreement span{
  color:#071826 !important;
  opacity:1 !important;
}
.officialAgreement{
  border:1px solid rgba(14,118,110,.22) !important;
  background:#fff9f0 !important;
}
.officialAgreement span{
  font-weight:650 !important;
  line-height:1.52 !important;
}

body.officialCropOpen{overflow:hidden !important;}
.officialCropOverlay[hidden]{display:none !important;}
.officialCropOverlay{
  position:fixed;
  inset:0;
  z-index:10050;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(7,24,38,.72);
  backdrop-filter:blur(4px);
}
.officialCropDialog{
  width:min(92vw,560px);
  max-height:min(92vh,720px);
  overflow:auto;
  box-sizing:border-box;
  padding:20px;
  border:1px solid rgba(7,24,38,.18);
  border-radius:18px;
  background:#fff9f0;
  box-shadow:0 22px 70px rgba(0,0,0,.3);
  color:#071826;
}
.officialCropHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.officialCropHead span{
  color:#0e766e;
  font:800 11px/1.2 var(--r354-ui,Arial,sans-serif);
  letter-spacing:.08em;
}
.officialCropHead h3{
  margin:3px 0 0;
  color:#071826;
  font-size:25px;
}
.officialCropClose{
  width:38px;
  height:38px;
  flex:0 0 38px;
  border:1px solid rgba(7,24,38,.16);
  border-radius:50%;
  background:#fff;
  color:#071826;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.officialCropDialog>p{
  margin:10px 0 16px;
  color:#566575;
  font:500 13px/1.5 var(--r354-ui,Arial,sans-serif);
}
.officialCropStage{
  position:relative;
  width:min(72vw,420px);
  aspect-ratio:1/1;
  margin:0 auto;
  overflow:hidden;
  border:3px solid #fff;
  border-radius:16px;
  outline:2px solid #31c9c2;
  background:#eadfce;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.officialCropStage:active{cursor:grabbing;}
.officialCropStage img{
  position:absolute;
  max-width:none !important;
  max-height:none !important;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}
.officialCropZoom{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:12px;
  margin:18px 0 0;
  color:#071826;
  font:700 12px/1.2 var(--r354-ui,Arial,sans-serif);
}
.officialCropZoom input{width:100%;accent-color:#0e766e;}
.officialCropActions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
}
@media(max-width:600px){
  .officialCropOverlay{padding:10px;}
  .officialCropDialog{padding:15px;border-radius:14px;}
  .officialCropStage{width:min(82vw,380px);}
  .officialCropActions{flex-direction:column-reverse;}
  .officialCropActions .joinBack,.officialCropActions .joinContinue{width:100% !important;}
}


/* R480 — étape Statut : badge Officiel stable et suppression du rond vide membre. */
.joinCard[data-current-view="profile-choice"] .profileChoiceButtonMember>b{
  display:none !important;
}
.joinCard[data-current-view="profile-choice"] button.profileChoiceButtonCreator.statusChoice:not(:disabled)>b{
  width:auto !important;
  min-width:76px !important;
  height:auto !important;
  min-height:34px !important;
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-left:18px !important;
  padding:7px 12px !important;
  border:1px solid rgba(14,118,110,.34) !important;
  border-radius:999px !important;
  background:rgba(49,201,194,.14) !important;
  color:#0e766e !important;
  font:800 12px/1 var(--r354-ui,Arial,sans-serif) !important;
  letter-spacing:.02em !important;
  text-transform:none !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
}
.officialSourceRequirement{
  margin:14px 0 0 !important;
  padding:11px 13px;
  border-left:3px solid #ef8d56;
  background:rgba(255,249,240,.82);
  color:#4f6073 !important;
  font:500 12px/1.5 var(--r354-ui,Arial,sans-serif) !important;
}
.officialSourceRequirement strong{color:#071826 !important;}

@media (max-width:980px), (max-height:760px){
  .joinCard[data-current-view="profile-choice"] button.profileChoiceButtonCreator.statusChoice:not(:disabled)>b{
    min-width:68px !important;
    min-height:30px !important;
    margin-left:12px !important;
    padding:6px 10px !important;
    font-size:11px !important;
  }
  .officialSourceRequirement{margin-top:10px !important;padding:9px 11px;font-size:11px !important;}
}

@media(max-width:700px){
  .joinCard[data-current-view="profile-choice"] button.profileChoiceButtonCreator.statusChoice:not(:disabled)>b{
    min-width:62px !important;
    min-height:28px !important;
    margin-left:8px !important;
    padding:5px 8px !important;
    font-size:10px !important;
  }
}


/* R481 — le même outil de recadrage sert au logo et à la bannière. */
.officialCropStage.isBannerCrop{
  width:min(82vw,760px);
  aspect-ratio:16/5;
  border-radius:14px;
}
.officialCropDialog.isBannerCropMode{width:min(94vw,840px);}
@media(max-width:600px){
  .officialCropStage.isBannerCrop{width:min(86vw,600px);}
}
