/* ============================================================
   RCF · thème par défaut — components.css
   Couleurs et polices : héritées de tokens.css (var(--...)).
   ============================================================ */
    padding:11px 14px;border-radius:5px;
  }
  input[type=text]:focus{outline:none;border-color:var(--hivis);box-shadow:0 0 0 3px rgba(215,224,36,.18)}
  .opts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  /* E3-B5.1 — une grille à deux colonnes avec une seule carte laisse une case
     vide à droite. `opts-solo` est posée par le constructeur quand il ne reste
     qu'une option ; elle disparaît d'elle-même si une seconde revient. */
  .opts.opts-solo{grid-template-columns:1fr}
  .opt{
    text-align:left;cursor:pointer;background:var(--plate);border:1px solid var(--edge);
    border-radius:6px;padding:13px 14px;color:var(--ink);transition:.14s;
  }
  .opt:hover{border-color:var(--steel);transform:translateY(-1px)}
  .opt.sel{border-color:var(--hivis);box-shadow:inset 0 0 0 1px var(--hivis),0 0 18px -6px rgba(215,224,36,.4);background:#262b25}
  .opt .n{font-family:var(--disp);font-weight:600;font-size:18px;letter-spacing:.03em}
  .opt .d{font-size:12.5px;color:var(--dim);margin-top:3px}

  /* ---------- BUTTONS ---------- */
  .btn{
    font-family:var(--disp);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
    font-size:16px;cursor:pointer;border:none;border-radius:6px;padding:13px 22px;
    background:var(--hivis);color:#14160c;transition:.14s;
  }
  .btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
  .btn:active{transform:translateY(0)}
  .btn.ghost{background:transparent;color:var(--dim);border:1px solid var(--edge)}
  .btn.ghost:hover{color:var(--ink);border-color:var(--steel);background:var(--panel2)}
  .btn:focus-visible,.opt:focus-visible,.choice:focus-visible{outline:2px solid var(--hivis);outline-offset:2px}

  /* ---------- GAME: TOP INFO ---------- */
  .rig{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;margin-bottom:14px}
  /* grade plate */
  .plate{padding:14px 16px;position:relative;overflow:hidden}
  .plate .strip{position:absolute;inset:0 auto 0 0;width:7px}
  .plate .lvl{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;color:var(--faint);text-transform:uppercase}
  .plate .role{font-family:var(--disp);font-weight:700;font-size:25px;line-height:1.02;
    text-transform:uppercase;letter-spacing:.02em;margin:5px 0 2px;padding-left:6px}
  .plate .filiere{font-size:12.5px;color:var(--dim);padding-left:6px}
  .plate .bolts::before,.plate .bolts::after{content:"";position:absolute;width:6px;height:6px;
    border-radius:50%;background:var(--steel);box-shadow:inset 0 1px 1px rgba(0,0,0,.6)}
  .plate .bolts::before{top:9px;right:9px}.plate .bolts::after{bottom:9px;right:9px}

  /* cadence gauge */
  .gauge{padding:10px 14px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .gauge svg{width:100%;max-width:210px;height:auto;display:block}
  .gauge .cap{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--faint);
    text-transform:uppercase;margin-top:-6px}
  .gauge .cap b{color:var(--hivis)}

  /* stat readouts */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px}
  .stat{background:var(--panel2);border:1px solid var(--edge);border-radius:6px;padding:9px 10px}
  .stat .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
  .stat .v{font-family:var(--mono);font-weight:700;font-size:19px;letter-spacing:.02em;margin:1px 0 6px}
  .bar{height:5px;background:#13151a;border-radius:3px;overflow:hidden}
  .bar > i{display:block;height:100%;border-radius:3px;transition:width .5s cubic-bezier(.2,.7,.2,1)}
  .stat.pay{grid-column:span 4}
  .stat.expertises{grid-column:span 4}
  .stat.expertises .xp-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
  .stat.expertises .xp-s{font-family:var(--mono);font-size:11px;letter-spacing:.04em}
  .stat.pay .row{display:flex;align-items:baseline;justify-content:space-between}
  .stat.pay .v{font-size:22px;color:var(--green);margin:0}
  @media(max-width:560px){.stat.pay{grid-column:span 2}}

  /* event card */
  .event{padding:18px 18px 16px;margin-bottom:14px}
  .event .cat{display:flex;align-items:center;gap:9px;margin-bottom:10px}
  .event .tag{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
    padding:3px 8px;border-radius:3px;background:var(--floor2);border:1px solid var(--edge);color:var(--dim)}
  .event .tag.warn{color:var(--orange);border-color:#4a2a1c}
  .event .tag.luck{color:var(--hivis);border-color:#3a3d16}
  .event h2{font-family:var(--disp);font-weight:600;font-size:23px;letter-spacing:.01em;margin:0 0 8px;line-height:1.1}
  .event p.body{color:var(--dim);margin:0 0 16px;max-width:60ch}
  .choices{display:flex;flex-direction:column;gap:9px}
  .choice{
    text-align:left;cursor:pointer;background:var(--plate);border:1px solid var(--edge);
    border-left:3px solid var(--steel);border-radius:5px;padding:12px 14px;color:var(--ink);transition:.14s;
    display:flex;justify-content:space-between;align-items:center;gap:12px;
  }
  .choice:hover{border-left-color:var(--hivis);background:#262a30;transform:translateX(2px)}
  .choice .lab{font-weight:600;font-size:15px}
  .choice .hint{font-size:12px;color:var(--faint);margin-top:2px}
  .choice .arr{color:var(--faint);font-family:var(--mono);flex:none}
  .choice:hover .arr{color:var(--hivis)}

  /* result panel */
  .result{padding:18px}
  .result .rt{color:var(--ink);font-size:15.5px;margin:0 0 14px;max-width:60ch}
  .deltas{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
  .delta{font-family:var(--mono);font-size:12px;font-weight:700;padding:4px 9px;border-radius:3px;
    background:var(--floor2);border:1px solid var(--edge);letter-spacing:.02em}
  .delta.up{color:var(--green);border-color:#254532}
  .delta.dn{color:var(--orange);border-color:#4a2a1c}

  .retire-note{margin-top:12px;text-align:center}
  .retire-note button{font-size:12px;letter-spacing:.14em}

  /* career log */
  details.log{margin-top:6px;border:1px solid var(--edge);border-radius:6px;background:var(--panel2)}
  details.log summary{cursor:pointer;list-style:none;padding:11px 14px;font-family:var(--mono);
    font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
  details.log summary::-webkit-details-marker{display:none}
  details.log summary::after{content:"▾";float:right;color:var(--faint)}
  details.log[open] summary::after{content:"▴"}
  .logbody{max-height:220px;overflow:auto;padding:2px 14px 12px}
  .logline{font-size:13px;color:var(--dim);padding:6px 0;border-top:1px dashed var(--edge)}
  .logline .y{font-family:var(--mono);color:var(--faint);font-size:11px;margin-right:8px}

  /* promotion overlay */
  .overlay{position:fixed;inset:0;background:rgba(10,11,13,.78);backdrop-filter:blur(3px);
    display:none;align-items:center;justify-content:center;z-index:40;padding:20px}
  .overlay.on{display:flex;animation:fade .25s ease both}
  .stamp{max-width:420px;width:100%;text-align:center;background:var(--panel);
    border:1px solid var(--hivis-deep);border-radius:10px;padding:26px 24px;box-shadow:0 0 60px -18px rgba(215,224,36,.5)}
  .stamp .badge{font-family:var(--disp);font-weight:700;letter-spacing:.22em;color:var(--hivis);
    font-size:14px;text-transform:uppercase;border:2px solid var(--hivis);display:inline-block;
    padding:5px 14px;border-radius:4px;transform:rotate(-4deg);margin-bottom:16px;
    animation:pop .5s cubic-bezier(.2,1.4,.4,1) both}
  @keyframes pop{from{transform:rotate(-4deg) scale(.5);opacity:0}to{transform:rotate(-4deg) scale(1);opacity:1}}
  .stamp .to{font-family:var(--disp);font-weight:700;font-size:28px;text-transform:uppercase;line-height:1.05;margin:2px 0 4px}
  .stamp .sal{font-family:var(--mono);color:var(--green);font-size:14px;margin-bottom:18px}

  /* end screen */
  .fiche{padding:22px}
  .fiche .head{text-align:center;border-bottom:1px solid var(--edge);padding-bottom:16px;margin-bottom:18px}
  .fiche .score{font-family:var(--disp);font-weight:700;font-size:74px;line-height:.85;color:var(--hivis)}
  .fiche .score span{font-size:26px;color:var(--faint)}
  .fiche .title{font-family:var(--disp);font-weight:600;font-size:24px;text-transform:uppercase;letter-spacing:.02em;margin-top:8px}
  .fiche .who{color:var(--dim);font-size:13.5px;margin-top:4px}
  .summary{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:18px}
  .sumcell{background:var(--panel2);border:1px solid var(--edge);border-radius:6px;padding:10px 12px}
  .sumcell .k{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
  .sumcell .v{font-family:var(--disp);font-weight:600;font-size:19px;margin-top:2px}
  .timeline{margin:4px 0 20px}
  .tl-row{display:flex;gap:12px;align-items:baseline;padding:5px 0;border-top:1px dashed var(--edge)}
  .tl-row .yy{font-family:var(--mono);font-size:12px;color:var(--faint);flex:none;width:64px}
  .tl-row .rr{font-family:var(--disp);font-size:15px;letter-spacing:.02em}
  .fiche .actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

  @media(max-width:560px){
    .rig{grid-template-columns:1fr}
    .stats{grid-template-columns:repeat(2,1fr)}
    .opts{grid-template-columns:1fr}
    .brand h1{font-size:28px}
    .summary{grid-template-columns:1fr}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important}
  }

/* CSS additionnel */
  /* ===== Compléments CADENCE (refonte) ===== */
  /* event */
  .ehead{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
  .etag{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
    padding:3px 8px;border-radius:3px;background:var(--floor2);border:1px solid var(--edge);color:var(--dim)}
  .etag.warn{color:var(--orange);border-color:#4a2a1c}
  .etitle{font-family:var(--disp);font-weight:600;font-size:23px;letter-spacing:.01em;margin:0 0 8px;line-height:1.12}
  .ebody{color:var(--dim);margin:0 0 16px;max-width:60ch}
  .choice .cl{font-weight:600;font-size:15px;display:block}
  .choice .ch{font-size:12px;color:var(--faint);margin-top:2px;display:block}
  .choice{flex-direction:column;align-items:flex-start}
  /* result */
  .result .rtxt{color:var(--ink);font-size:15.5px;margin:0 0 14px;max-width:60ch}
  .delta.down{color:var(--orange);border-color:#4a2a1c}
  .delta.c-pay{color:var(--green)}
  /* log lines (moteur) */
  .logl{font-size:13px;color:var(--dim);padding:6px 0;border-top:1px dashed var(--edge)}
  /* end kpis */
  #endSummary{display:block}
  #endSummary p{color:var(--dim);margin:0 0 12px}
  .ekpi{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
  .kpi{background:var(--panel2);border:1px solid var(--edge);border-radius:6px;padding:10px 12px}
  .kpi .kk{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
  .kpi .kv{font-family:var(--disp);font-weight:600;font-size:18px;margin-top:2px}
  .timeline .tl{display:flex;gap:12px;align-items:baseline;padding:5px 0;border-top:1px dashed var(--edge)}

/* ============================================================
   RCF · icônes branchées sur le manifeste d'assets (Assets.iconOr)
   ------------------------------------------------------------
   Tant qu'aucune image n'est fournie, un <span> texte (l'émoji d'origine)
   est affiché à la place : ces règles s'appliquent aux deux cas pour que
   la mise en page ne bouge pas quand une icône est branchée.
   ============================================================ */
.icon-inline{display:inline-block;vertical-align:-2px;line-height:1}
.hud-ic{width:13px;height:13px;object-fit:contain}
span.hud-ic{width:auto;height:auto;vertical-align:baseline}
.t-ic-img{width:24px;height:24px;object-fit:contain;display:inline-block}
span.t-ic-img{width:auto;height:auto;font-size:24px}

/* ===== RCF PRESTIGE COMPONENTS ===== */
.btn{
  position:relative;min-height:var(--tap);padding:7px 22px;border-radius:11px;
  font-size:14px;letter-spacing:.075em;background:var(--yellowgrad);color:#161003;
  box-shadow:0 1px 0 rgba(255,255,255,.42) inset,0 12px 26px -17px rgba(255,181,0,.9);
}
.btn::after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1px solid rgba(255,255,255,.12);pointer-events:none}
.btn:hover{transform:translateY(-1px);filter:saturate(1.08) brightness(1.04);box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 16px 34px -18px rgba(255,181,0,.95)}
.btn.ghost{background:rgba(8,24,39,.54);backdrop-filter:blur(12px);border:1px solid rgba(141,176,207,.32);color:var(--ink);box-shadow:none}
.btn.ghost:hover{background:rgba(21,48,72,.72);border-color:rgba(255,189,25,.55)}
.opts{gap:9px}
.opt{min-height:64px;border-radius:13px;padding:11px 13px;background:rgba(10,28,45,.7);border-color:rgba(142,177,209,.23);box-shadow:0 1px 0 rgba(255,255,255,.03) inset}
.opt:hover{transform:translateY(-1px);border-color:rgba(255,189,25,.48);background:rgba(18,43,65,.82)}
.opt.sel{background:linear-gradient(180deg,rgba(255,189,25,.16),rgba(255,189,25,.055));border-color:rgba(255,189,25,.78);box-shadow:0 0 0 1px rgba(255,189,25,.22) inset,0 14px 30px -24px rgba(255,189,25,.8)}
.opt .n{font-size:16px}.opt .d{font-size:11.5px;line-height:1.35}
.rig{gap:10px;margin-bottom:10px}.plate{padding:13px 15px}.plate .role{font-size:22px}.plate .strip{width:4px}
.stats{grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px}
.stat{min-width:0;border-radius:12px;padding:8px 9px;background:rgba(8,24,39,.72);border-color:rgba(142,177,209,.2)}
.stat .k{font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat .v{font-size:17px;margin:2px 0 5px}.bar{height:4px;background:#06101a}
.stat.pay{grid-column:span 3}.stat.pay .v{font-size:20px;color:var(--hivis)}
/* LOT 0.5 — bloc Expertises (étoiles), pleine largeur sous les compétences */
.stat.expertises{grid-column:span 3}
.stat.expertises .xp-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:1px 0}
.stat.expertises .xp-n{font-size:11.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stat.expertises .xp-s{font-family:var(--mono);font-size:11px;color:var(--hivis);letter-spacing:.04em;flex:0 0 auto}
.event{padding:16px;margin-bottom:10px;position:relative;overflow:hidden}
.event::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--hivis),transparent);opacity:.75}
.event h2,.etitle{font-size:22px;line-height:1.08;letter-spacing:.005em}
.event p.body{font-size:14px;line-height:1.55;margin-bottom:14px}
.event .tag,.etag{border-radius:999px;padding:4px 9px;font-size:9px;background:rgba(5,18,31,.66);backdrop-filter:blur(8px)}
.choices{gap:8px}.choice{min-height:var(--tap);padding:9px 12px;border-radius:11px;background:rgba(8,25,41,.76);border-color:rgba(142,177,209,.22);border-left:1px solid rgba(142,177,209,.22)}
.choice:hover{transform:translateY(-1px);border-color:rgba(255,189,25,.65);background:rgba(22,48,70,.86)}
.choice .lab,.choice .cl{font-size:14px}.choice .hint,.choice .ch{font-size:11.5px}
.result{padding:15px}.delta{border-radius:999px;padding:4px 9px;font-size:11px}
details.log{border-radius:12px;background:rgba(7,22,36,.68);border-color:rgba(142,177,209,.22)}
details.log summary{min-height:46px;display:flex;align-items:center;padding:8px 12px;font-size:10px}
.overlay{background:rgba(2,8,14,.76);backdrop-filter:blur(12px) saturate(.8)}
.stamp{border-radius:20px;padding:24px 20px;background:linear-gradient(180deg,rgba(17,43,66,.96),rgba(5,18,31,.98));border-color:rgba(255,189,25,.5)}
@media(max-width:560px){.stats{grid-template-columns:repeat(3,1fr)}.stat.pay{grid-column:span 3}}

/* RCF Living — composants premium */
.btn,.menu-btn,.career-btn,.choice,.cp-row,.cp-acc,.trophy-card{transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease,background .22s ease,box-shadow .22s ease,filter .22s ease}
.btn:active,.menu-btn:active,.career-btn:active,.choice:active{transform:scale(.985)}
.btn:focus-visible,.menu-btn:focus-visible,.career-btn:focus-visible,.choice:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.card,.event,.sheet,.cp-acc,.cp-row,.trophy-card{position:relative;overflow:hidden}
.card::before,.event::before,.sheet::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);pointer-events:none}
.event{background:linear-gradient(155deg,rgba(18,45,68,.93),rgba(4,15,26,.98));border:1px solid rgba(165,197,223,.24);box-shadow:0 30px 70px -42px #000}
.event::after{content:"";position:absolute;right:-70px;top:-70px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,192,46,.11),transparent 66%);pointer-events:none}
.choice{min-height:52px;border-radius:13px;background:linear-gradient(180deg,rgba(17,42,63,.8),rgba(5,18,31,.92));border:1px solid rgba(150,184,211,.24);box-shadow:0 10px 28px -24px #000}
.choice:hover{transform:translateY(-2px);border-color:rgba(255,192,46,.55);background:linear-gradient(180deg,rgba(29,61,87,.88),rgba(7,23,38,.95));box-shadow:0 18px 38px -26px rgba(255,174,0,.45)}
.stat{background:linear-gradient(160deg,rgba(16,40,60,.75),rgba(4,16,27,.88));border-color:rgba(159,191,217,.18);backdrop-filter:blur(12px)}
.stat:hover{border-color:rgba(255,192,46,.34);transform:translateY(-1px)}
.bar>i{box-shadow:0 0 18px rgba(255,192,46,.22)}
.trophy-card:hover{transform:translateY(-3px);border-color:rgba(255,192,46,.42);box-shadow:0 20px 45px -32px rgba(255,180,0,.55)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* ============================================================
   LOT 3B — Maîtrise métier. Titre seul : aucune jauge, aucun score,
   aucun pourcentage, aucune étoile (réservées aux Ambitions).
   ============================================================ */
.grade .maitrise{ font-size:11px; letter-spacing:.04em; color:var(--amber); opacity:.95; margin-top:2px; }
.mastery-toast{
  position:fixed; left:50%; bottom:96px; transform:translate(-50%,14px);
  z-index:60; pointer-events:none; opacity:0;
  padding:10px 18px; border-radius:var(--radius);
  background:var(--panel); border:1px solid var(--edge); box-shadow:var(--shadow);
  text-align:center; transition:opacity .28s ease, transform .28s ease;
}
.mastery-toast.on{ opacity:1; transform:translate(-50%,0); }
.mastery-toast .mt-k{ font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); }
.mastery-toast .mt-v{ font-size:18px; font-weight:700; color:var(--ink); margin-top:2px; }
.mastery-toast .mt-j{ font-size:11px; color:var(--dim); margin-top:1px; }
.mastery-toast.lvl3 .mt-v{ color:var(--amber); }
.mastery-toast.lvl4{ border-color:var(--hivis); }
.mastery-toast.lvl4 .mt-v{ color:var(--hivis); font-size:20px; letter-spacing:.02em; }


/* ============================================================
   MICRO-CORRECTIF CARACTÉRISTIQUES — termes de caractéristiques cachées.
   Rigueur, Relationnel, Leadership, Capacité d'encadrement et Adéquation au
   poste n'ont pas de tuile dans le HUD. Là où le jeu les nomme DÉJÀ (puce de
   résultat, condition de carrière), le mot reste du texte normal : seul un
   soulignement pointillé discret signale qu'il porte une définition. Pas de
   badge, pas de bouton, pas de carte — et le mot entier est la cible tactile.
   ============================================================ */
.stat-terme{
  border-bottom:1px dotted currentColor;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(255,255,255,.14);
}
.stat-terme:focus-visible{
  outline:2px solid var(--gold,#c9a23a);
  outline-offset:2px;
  border-radius:2px;
}
