/* Commandes communes : bleu nuit, liseré champagne et relief discret.
   Les cartes, les réponses et les repères du plateau gardent leur propre sémantique. */
:root {
  --sf-button-edge: #d9c79b55;
  --sf-button-fill: linear-gradient(180deg, #40516e, #2b3852);
  --sf-button-shadow: inset 0 1px 0 #ffffff12, 0 3px 0 #142036, 0 5px 12px #0b142b30;
  --sf-button-gold: linear-gradient(180deg, #ffe8ae, #edc475);
}
:root body :is(.sfedu .sfedu-btn, .btn, .v2-btn, .sf-island-action, .sce-btn,
  .acct-card .lnk, .lnk2, .sheet-act, .sheet-evolve, .hc-choose) {
  border-radius: 14px;
  border: 1px solid var(--sf-button-edge);
  font-weight: 750;
  letter-spacing: .01em;
  line-height: 1.35;
  box-shadow: var(--sf-button-shadow);
  cursor: pointer;
  touch-action: manipulation;
  transition: box-shadow .15s ease, border-color .15s ease, filter .15s ease;
}
:root body .lnk2 { min-height: 44px; }
:root body :is(.sfedu .sfedu-btn, .sf-island-action, .sce-btn, .acct-card .lnk, .lnk2, .v2-btn) {
  background: var(--sf-button-fill);
  color: #fff4de;
}
:root body :is(.btn, .hc-choose, .sheet-act, .sheet-evolve, .v2-btn--primary),
:root body .education-shell .sfedu :is(.sfedu-continue-cta, .sfedu-carousel-go),
:root body .education-shell .sfedu-primary-actions > .sfedu-btn:first-child {
  background: var(--sf-button-gold);
  border-color: #f8dea0;
  color: #382b22;
  text-shadow: 0 1px 0 #fff6;
  box-shadow: inset 0 1px 0 #fff7, 0 3px 0 #967043, 0 6px 14px #10172c30;
}
:root body .sfedu .sfedu-btn:is(.secondary, .quiet),
:root body :is(.acct-card .lnk, .lnk2) {
  background: linear-gradient(180deg, #2e3c55, #253148);
  color: #e2e8f3;
  border-color: #b9cee52e;
  box-shadow: inset 0 1px 0 #ffffff09, 0 2px 0 #14203666;
}
:root body :is(.acct-card .lnk.danger, .v2-btn--danger) {
  color: #ffd5cb; border-color: #efab9966; background: #583640;
}
:root body .sf-island-action[aria-current],
:root body .sfedu-stars > .sfedu-btn:not(.quiet) {
  color: #382b22; background: var(--sf-button-gold); border-color: #f8dea0;
}
/* Réponses : conserver les trois états pédagogiques, y compris après désactivation. */
:root body .sfedu-choices .sfedu-btn { text-shadow: none; }
:root body .sfedu-choices .sfedu-btn:not(.sfedu-choice-good):not(.sfedu-choice-right):not(.sfedu-choice-bad) {
  background: #405074; color: #fff4de;
}
:root body .sfedu .sfedu-next-answer {
  min-height: 64px;
  background: var(--sf-button-gold); color: #382b22; border-color: #f8dea0;
}
:root body .sfedu-choices .sfedu-btn:is(.sfedu-choice-good, .sfedu-choice-right) {
  background: #286052; color: white; border-color: #91d6b7; opacity: 1;
}
:root body .sfedu-choices .sfedu-btn.sfedu-choice-bad {
  background: #724653; color: white; border-color: #e4aab2; opacity: 1;
}
/* Un seul dessin de retour : chevron fin, surface tactile 44 px, sans glyphe variable. */
:root body :is(.sfedu .sfedu-close, .sc2 .sheet .bk) {
  width: 46px; height: 44px; min-width: 44px; min-height: 44px;
  display: flex; align-items: center; justify-content: center; padding: 0;
  border: 1px solid #e2cf9b70; border-radius: 15px;
  background: var(--sf-button-fill); color: #ffe2a0;
  box-shadow: var(--sf-button-shadow); font-size: 0; cursor: pointer;
}
:root body :is(.sfedu .sfedu-close, .sc2 .sheet .bk)::before,
:root body .sf-return::before,
:root body .map-atlas-return > span::before {
  content: ''; display: inline-block; flex: 0 0 auto;
  width: 10px; height: 10px; border: solid currentColor;
  border-width: 0 0 2px 2px; border-radius: 1px;
  transform: rotate(45deg); background: none; clip-path: none;
}
:root body .sf-return {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
}
:root body :is(.sfedu .sfedu-close, .sc2 .sheet .bk)::before {
  transform: translateX(2px) rotate(45deg);
}
/* Même finition dans le duel et les récits ; les réponses gardent leurs couleurs. */
:root body #cv2 :is(.cv2-story-go, .cv2-ask-next) {
  background: var(--sf-button-gold); color: #382b22;
  border: 1px solid #f8dea0; border-radius: 14px;
  box-shadow: inset 0 1px 0 #fff7, 0 3px 0 #96704366, 0 6px 14px #10172c30;
}
:root body #cv2 .cv2-story-tools button,
:root body #introVN :is(#ivSkip, #ivVoice),
:root body .sfintro-passer {
  min-height: 44px; border: 1px solid var(--sf-button-edge); border-radius: 14px;
  background: var(--sf-button-fill); color: #fff4de;
  box-shadow: var(--sf-button-shadow);
}
:root body .education-shell .map-atlas-return {
  min-height: 52px; padding: 10px 14px; border-radius: 16px;
  border: 1px solid var(--sf-button-edge); background: var(--sf-button-fill);
  color: #fff4de; box-shadow: var(--sf-button-shadow);
}
:root body .map-atlas-return > span {
  display: grid; place-items: center; width: 28px; height: 30px;
  font-size: 0; color: #ffe2a0; margin-right: 12px;
}
/* Fermer reste une croix ; les commandes d’icône partagent la même monture. */
:root body :is(.set-close, .v2-close, .tower-close, .acct-btn, .v2-iconbtn) {
  min-width: 44px; min-height: 44px; border-radius: 14px;
  border: 1px solid var(--sf-button-edge); background: var(--sf-button-fill);
  color: #f8e5bd; box-shadow: inset 0 1px 0 #ffffff16, 0 2px 6px #10172c30;
  cursor: pointer;
}
:root body .hc-arrow {
  border: 1px solid #f7dca1; background: var(--sf-button-gold);
  box-shadow: inset 0 1px 0 #fff8, 0 3px 0 #96704366, 0 5px 12px #10172c30;
}
:root body :is(.sfedu-btn, .btn, .v2-btn, .sf-island-action, .sce-btn, .sfedu-close, .bk, .sf-return):disabled {
  cursor: default; box-shadow: none; filter: saturate(.45);
}
:root body button:focus-visible { outline: 3px solid #ffe1a0; outline-offset: 3px; }
@media (hover: hover) {
  :root body :is(.sfedu-btn, .btn, .v2-btn, .sf-island-action, .sce-btn, .sfedu-close, .bk, .set-close, .sf-return):hover:not(:disabled) {
    border-color: #ffe1a0; filter: brightness(1.08);
  }
}
:root body :is(.sfedu-btn, .btn, .v2-btn, .sf-island-action, .sce-btn, .sfedu-close, .bk, .sf-return):active:not(:disabled) {
  box-shadow: inset 0 2px 4px #0b142b30; filter: brightness(.96);
}
@media (prefers-reduced-motion: reduce) {
  :root body button { transition: none !important; }
}
