/* Circuit imprimé — édition 47. Couche visuelle uniquement, chargée après les styles historiques. */
html[data-skin="pcb47"] {
  color-scheme: dark;
  --pcb-green: #0B5D1E;
  --pcb-green-deep: #062e14;
  --pcb-green-panel: #073817;
  --pcb-green-highlight: #0f6c2b;
  --pcb-copper: #C49A00;
  --pcb-copper-light: #edc84f;
  --pcb-led: #00FF41;
  --pcb-white: #F5F5F5;
  --pcb-muted: #d7e2d7;
  --pcb-red: #B20000;
  --pcb-black: #04110a;
  background: var(--pcb-green);
  color: var(--pcb-white);
  font-family: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", "Courier New", monospace;
}
html[data-skin="pcb47"] body {
  min-height: 100vh;
  color: var(--pcb-white);
  background-color: var(--pcb-green);
  background-image: linear-gradient(180deg, rgba(3,37,16,.30), rgba(2,24,11,.30)), url("./pcb47-board.svg");
  background-size: auto, 560px 448px;
  background-position: center top, center top;
  background-repeat: no-repeat, repeat;
  background-attachment: fixed, scroll;
}
html[data-skin="pcb47"] body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .11;
  background: repeating-linear-gradient(0deg, rgba(240,255,238,.18) 0 1px, transparent 1px 5px);
}
html[data-skin="pcb47"] .app {
  position: relative;
  z-index: 1;
  max-width: 1040px;
  isolation: isolate;
}
html[data-skin="pcb47"] .topbar {
  border-bottom: 1px solid rgba(196,154,0,.76);
  background: linear-gradient(90deg, rgba(4,42,18,.94), rgba(5,53,22,.78));
  box-shadow: 0 4px 0 rgba(0,0,0,.22);
}
html[data-skin="pcb47"] .brand,
html[data-skin="pcb47"] .version,
html[data-skin="pcb47"] .topbar button { color: var(--pcb-white); }
html[data-skin="pcb47"] .brand small {
  color: var(--pcb-copper-light);
  font-family: inherit;
  font-size: 8px;
  letter-spacing: 1.5px;
}
html[data-skin="pcb47"] .brand img {
  border: 1px solid var(--pcb-copper);
  border-radius: 8px;
  box-shadow: 0 2px 0 #031108, 0 0 10px rgba(196,154,0,.20);
}
html[data-skin="pcb47"] h1,
html[data-skin="pcb47"] h2,
html[data-skin="pcb47"] h3,
html[data-skin="pcb47"] .hero h1,
html[data-skin="pcb47"] .section-title h2,
html[data-skin="pcb47"] .mode-players46 h1 {
  color: var(--pcb-led);
  font-family: inherit;
  font-weight: 800;
  text-shadow: 0 0 10px rgba(0,255,65,.18);
}
html[data-skin="pcb47"] h1 { letter-spacing: -.055em; }
html[data-skin="pcb47"] .hero h1 em {
  color: var(--pcb-white);
  font-family: inherit;
  font-style: normal;
  letter-spacing: -.07em;
}
html[data-skin="pcb47"] p,
html[data-skin="pcb47"] .help,
html[data-skin="pcb47"] .version,
html[data-skin="pcb47"] .offline,
html[data-skin="pcb47"] .section-title > span,
html[data-skin="pcb47"] .mode-card small,
html[data-skin="pcb47"] .score-item small,
html[data-skin="pcb47"] footer summary {
  color: var(--pcb-muted);
}
html[data-skin="pcb47"] .eyebrow,
html[data-skin="pcb47"] .section-title > span,
html[data-skin="pcb47"] .gamebar,
html[data-skin="pcb47"] .version {
  font-family: inherit;
  letter-spacing: .12em;
}
html[data-skin="pcb47"] .section-title > span,
html[data-skin="pcb47"] .gamebar { color: var(--pcb-copper-light); }
html[data-skin="pcb47"] .card-scene .secret-card,
html[data-skin="pcb47"] .card-scene .mini-card,
html[data-skin="pcb47"] .universe,
html[data-skin="pcb47"] .mode-card,
html[data-skin="pcb47"] .panel,
html[data-skin="pcb47"] .score-item,
html[data-skin="pcb47"] .word-card,
html[data-skin="pcb47"] .lock-art,
html[data-skin="pcb47"] .sound-controls,
html[data-skin="pcb47"] #taboo-paused,
html[data-skin="pcb47"] #relay-wait,
html[data-skin="pcb47"] .audio-settings-panel,
html[data-skin="pcb47"] .link-card,
html[data-skin="pcb47"] .appearance-option,
html[data-skin="pcb47"] .stat-pill {
  color: var(--pcb-white);
  border: 1px solid rgba(196,154,0,.88);
  border-radius: 16px;
  background-color: rgba(5,47,20,.97);
  background-image:
    radial-gradient(circle at 12px 12px, #04160b 0 2.5px, var(--pcb-copper) 3px 4.1px, transparent 4.6px),
    radial-gradient(circle at calc(100% - 12px) 12px, #04160b 0 2.5px, var(--pcb-copper) 3px 4.1px, transparent 4.6px),
    radial-gradient(circle at 12px calc(100% - 12px), #04160b 0 2.5px, var(--pcb-copper) 3px 4.1px, transparent 4.6px),
    radial-gradient(circle at calc(100% - 12px) calc(100% - 12px), #04160b 0 2.5px, var(--pcb-copper) 3px 4.1px, transparent 4.6px),
    linear-gradient(145deg, rgba(15,108,43,.26), rgba(3,38,16,.32));
  box-shadow: 0 5px 0 rgba(0,0,0,.72), 0 12px 22px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.10);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
html[data-skin="pcb47"] .hero .secret-card {
  border: 2px solid var(--pcb-copper);
  background-color: #073817;
  background-image: radial-gradient(circle at 12px 12px, #04160b 0 2.5px, var(--pcb-copper) 3px 4.1px, transparent 4.6px), linear-gradient(145deg,#0f6c2b,#052d14 78%);
  color: var(--pcb-white);
  box-shadow: 0 9px 0 #020b06, 0 18px 28px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.2);
}
html[data-skin="pcb47"] .hero .secret-card b { color: var(--pcb-led); text-shadow: 0 0 12px rgba(0,255,65,.32); }
html[data-skin="pcb47"] .hero .mini-card { color: var(--pcb-white); border-color: var(--pcb-copper); }
html[data-skin="pcb47"] .spark { color: var(--pcb-copper-light); text-shadow: 0 0 8px rgba(237,200,79,.4); }
html[data-skin="pcb47"] .mode-card {
  min-height: 112px;
  border-width: 1px;
  border-radius: 15px;
  text-align: left;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
html[data-skin="pcb47"] .mode-card:hover,
html[data-skin="pcb47"] .universe:hover {
  transform: translateY(-2px);
  border-color: var(--pcb-copper-light);
  box-shadow: 0 7px 0 rgba(0,0,0,.72), 0 0 0 2px rgba(0,255,65,.18), 0 0 20px rgba(196,154,0,.18);
}
html[data-skin="pcb47"] .mode-card:active,
html[data-skin="pcb47"] .universe:active,
html[data-skin="pcb47"] .primary:active,
html[data-skin="pcb47"] .secondary:active,
html[data-skin="pcb47"] .responses button:active {
  transform: translateY(2px);
  box-shadow: inset 0 2px 7px rgba(0,0,0,.62), 0 0 0 2px rgba(91,207,255,.78);
}
html[data-skin="pcb47"] .mode-card strong,
html[data-skin="pcb47"] .universe strong,
html[data-skin="pcb47"] .mode-players46 strong { color: var(--pcb-white); }
html[data-skin="pcb47"] .mode-number,
html[data-skin="pcb47"] .arrow,
html[data-skin="pcb47"] .mode-card .arrow { color: var(--pcb-led); text-shadow: 0 0 7px rgba(0,255,65,.24); }
html[data-skin="pcb47"] .mode-card.featured,
html[data-skin="pcb47"] .universe.civil {
  background-color: #064018;
  background-image: radial-gradient(circle at 12px 12px, #04160b 0 2.5px, var(--pcb-copper) 3px 4.1px, transparent 4.6px), linear-gradient(145deg,#0b6025,#043215 80%);
  border-color: var(--pcb-copper-light);
  color: var(--pcb-white);
}
html[data-skin="pcb47"] .mode-card.featured strong,
html[data-skin="pcb47"] .mode-card.featured small,
html[data-skin="pcb47"] .mode-card.featured .arrow,
html[data-skin="pcb47"] .mode-card.featured .mode-number { color: var(--pcb-white); }
html[data-skin="pcb47"] .mode-card#mode-duo46 .mode-number,
html[data-skin="pcb47"] .mode-card#mode-solo46 .mode-number {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 50px;
  overflow: hidden;
  border: 1px solid #f3c4b8;
  border-radius: 8px;
  background: linear-gradient(145deg, #B20000 0%, #900000 55%, #710000 100%);
  color: transparent;
  font-size: 0;
  opacity: 1;
  box-shadow: inset 0 2px 3px rgba(255,255,255,.22), inset 0 -4px 6px rgba(0,0,0,.35), 0 3px 0 #260000;
}
html[data-skin="pcb47"] .mode-card#mode-duo46 .mode-number::before,
html[data-skin="pcb47"] .mode-card#mode-solo46 .mode-number::before {
  content: "I / O";
  position: absolute;
  inset: auto 0 4px;
  color: #fff;
  font: 700 6px/1 monospace;
  letter-spacing: .08em;
  text-align: center;
  text-shadow: none;
}
html[data-skin="pcb47"] .mode-card#mode-duo46 .mode-number::after,
html[data-skin="pcb47"] .mode-card#mode-solo46 .mode-number::after {
  content: "";
  position: absolute;
  top: 7px;
  left: 17px;
  width: 8px;
  height: 27px;
  border: 1px solid #fff;
  border-radius: 3px;
  background: linear-gradient(90deg,#e8e8e8,#fff 55%,#c8c8c8);
  box-shadow: 1px 2px 2px rgba(0,0,0,.55);
  transform: rotate(-22deg);
  transform-origin: 50% 88%;
  transition: transform .14s ease;
}
html[data-skin="pcb47"] .mode-card#mode-duo46:hover .mode-number::after,
html[data-skin="pcb47"] .mode-card#mode-solo46:hover .mode-number::after,
html[data-skin="pcb47"] .mode-card#mode-duo46:active .mode-number::after,
html[data-skin="pcb47"] .mode-card#mode-solo46:active .mode-number::after { transform: rotate(22deg); }
html[data-skin="pcb47"] .mode-card#mode-duo46 > span:nth-child(2),
html[data-skin="pcb47"] .mode-card#mode-solo46 > span:nth-child(2) { min-width: 0; padding-right: 9px; }
html[data-skin="pcb47"] .mode-card#mode-duo46 .arrow,
html[data-skin="pcb47"] .mode-card#mode-solo46 .arrow { color: var(--pcb-copper-light); }
html[data-skin="pcb47"] .panel {
  border-width: 2px;
  border-radius: 15px;
  background-color: rgba(4,42,17,.98);
  box-shadow: 0 6px 0 rgba(0,0,0,.78), 0 16px 30px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.11);
}
html[data-skin="pcb47"] .panel h1 { font-size: clamp(26px, 7vw, 34px); }
html[data-skin="pcb47"] .panel > p,
html[data-skin="pcb47"] .panel .help,
html[data-skin="pcb47"] .panel label { color: var(--pcb-muted); }
html[data-skin="pcb47"] .primary,
html[data-skin="pcb47"] .secondary,
html[data-skin="pcb47"] .file-label,
html[data-skin="pcb47"] .responses button,
html[data-skin="pcb47"] .sound-controls button,
html[data-skin="pcb47"] .audio-settings-trigger,
html[data-skin="pcb47"] .audio-panel-close,
html[data-skin="pcb47"] #connect-devices,
html[data-skin="pcb47"] #taboo-pause,
html[data-skin="pcb47"] .link-card button,
html[data-skin="pcb47"] .link-device,
html[data-skin="pcb47"] #link-disconnect {
  min-height: 46px;
  border: 1px solid var(--pcb-copper);
  border-radius: 9px;
  color: var(--pcb-white);
  background-color: #064019;
  background-image: linear-gradient(145deg,rgba(16,108,43,.36),rgba(4,38,16,.65));
  box-shadow: 0 4px 0 #020b06, inset 0 1px 0 rgba(255,255,255,.12);
  font-family: inherit;
  font-weight: 700;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
html[data-skin="pcb47"] .primary {
  background-color: #8d0000;
  background-image: linear-gradient(145deg,#B20000,#8d0000 78%);
  border-color: #e0b742;
  color: #fff;
}
html[data-skin="pcb47"] .secondary:hover,
html[data-skin="pcb47"] .file-label:hover,
html[data-skin="pcb47"] .responses button:hover,
html[data-skin="pcb47"] .audio-settings-trigger:hover { background-color: #0a5724; border-color: var(--pcb-copper-light); }
html[data-skin="pcb47"] .responses button:first-child { color: var(--pcb-white); background-color: #075623; }
html[data-skin="pcb47"] .responses button:nth-child(2) { color: var(--pcb-white); background-color: #073817; }
html[data-skin="pcb47"] .home-tools .secondary { min-height: 50px; }
html[data-skin="pcb47"] input,
html[data-skin="pcb47"] select,
html[data-skin="pcb47"] textarea,
html[data-skin="pcb47"] .link-pane input:not([type=checkbox]),
html[data-skin="pcb47"] .link-pane textarea {
  min-height: 50px;
  border: 1px solid var(--pcb-copper);
  border-radius: 8px;
  background: #031a0b;
  color: var(--pcb-white);
  box-shadow: inset 0 3px 8px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.08);
}
html[data-skin="pcb47"] input::placeholder,
html[data-skin="pcb47"] textarea::placeholder { color: #b4c7b6; opacity: 1; }
html[data-skin="pcb47"] input[type="checkbox"],
html[data-skin="pcb47"] input[type="range"] { accent-color: var(--pcb-led); }
html[data-skin="pcb47"] .word-card,
html[data-skin="pcb47"] .lock-art {
  background-color: #073817;
  background-image: radial-gradient(circle at 12px 12px,#04160b 0 2.5px,var(--pcb-copper) 3px 4.1px,transparent 4.6px),linear-gradient(145deg,#0c682a,#042e14);
}
html[data-skin="pcb47"] .word-card > span,
html[data-skin="pcb47"] .category-pill,
html[data-skin="pcb47"] .timer-row strong,
html[data-skin="pcb47"] .score-item b,
html[data-skin="pcb47"] #taboo-countdown .countdown-number { color: var(--pcb-led); text-shadow: 0 0 9px rgba(0,255,65,.24); }
html[data-skin="pcb47"] .word { color: var(--pcb-white); font-family: inherit; font-weight: 700; }
html[data-skin="pcb47"] .score-item.active {
  border-color: var(--pcb-copper-light);
  background-color: #0a5622;
  box-shadow: inset 0 0 0 1px rgba(0,255,65,.22), 0 5px 0 rgba(0,0,0,.72);
}
html[data-skin="pcb47"] .avatar { background: #0a6127; color: var(--pcb-white); border: 1px solid var(--pcb-copper); }
html[data-skin="pcb47"] .timer-row strong {
  background: #031a0b;
  border: 2px solid var(--pcb-copper);
  box-shadow: 0 4px 0 #020b06, inset 0 2px 8px rgba(0,0,0,.7);
  font-family: "Courier New", monospace;
  font-variant-numeric: tabular-nums;
}
html[data-skin="pcb47"] .taboo-list li { border: 1px solid #ca8a77; border-radius: 7px; background: #40160f; color: #fff2ed; }
html[data-skin="pcb47"] .private-panel { border-top: 2px solid var(--pcb-copper); }
html[data-skin="pcb47"] .tu-rules strong,
html[data-skin="pcb47"] .text-button,
html[data-skin="pcb47"] .link-eyebrow { color: var(--pcb-led); }
html[data-skin="pcb47"] .rule-pills span,
html[data-skin="pcb47"] .universe-strip span {
  border: 1px solid var(--pcb-copper);
  border-radius: 5px;
  background: #052d14;
  color: var(--pcb-white);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
html[data-skin="pcb47"] .notice,
html[data-skin="pcb47"] .danger,
html[data-skin="pcb47"] .taboo-buttons .danger { color: #ffe3dc; }
html[data-skin="pcb47"] .taboo-buttons .danger { background: #551c11; border-color: #e0a28c; }
html[data-skin="pcb47"] .how { border-color: rgba(196,154,0,.65); }
html[data-skin="pcb47"] footer {
  border-top: 1px solid rgba(196,154,0,.72);
  color: var(--pcb-white);
}
html[data-skin="pcb47"] footer > span { color: var(--pcb-copper-light); }
html[data-skin="pcb47"] footer summary { color: var(--pcb-white); }
html[data-skin="pcb47"] footer p { color: var(--pcb-muted); }
html[data-skin="pcb47"] .toast,
html[data-skin="pcb47"] [role="dialog"],
html[data-skin="pcb47"] .link-card,
html[data-skin="pcb47"] .audio-settings-panel {
  border: 1px solid var(--pcb-copper);
  background: #042511;
  color: var(--pcb-white);
  box-shadow: 0 8px 24px rgba(0,0,0,.60), inset 0 1px 0 rgba(255,255,255,.10);
}
html[data-skin="pcb47"] .link-overlay { background: rgba(0,10,4,.82); }
html[data-skin="pcb47"] .link-note,
html[data-skin="pcb47"] .link-pane p,
html[data-skin="pcb47"] .link-pane small { color: var(--pcb-muted); }
html[data-skin="pcb47"] .link-tabs { background: #031a0b; border: 1px solid var(--pcb-copper); }
html[data-skin="pcb47"] .link-tabs button[aria-selected="true"],
html[data-skin="pcb47"] .link-actions button:first-child { background: #0a6127; color: #fff; }
html[data-skin="pcb47"] .link-unavailable { background: #432a08; color: #fff1c9; border: 1px solid var(--pcb-copper); }
html[data-skin="pcb47"] #link-panel-status[data-connected="true"] { background: #075623; color: #fff; }
html[data-skin="pcb47"] #taboo-countdown { background: rgba(2,22,9,.98); color: var(--pcb-white); border: 1px solid var(--pcb-copper); }
html[data-skin="pcb47"] .appearance-trigger {
  border: 1px solid var(--pcb-copper);
  border-radius: 8px;
  background: #042511;
  color: var(--pcb-white);
  box-shadow: 0 4px 0 rgba(0,0,0,.65);
  font-family: inherit;
}
html[data-skin="pcb47"] .appearance-option[aria-pressed="true"] { outline: 2px solid var(--pcb-led); }
html[data-skin="pcb47"] :focus-visible { outline: 3px solid #59cfff !important; outline-offset: 3px !important; }
html[data-skin="pcb47"] button:disabled { opacity: .55; }
html[data-skin="pcb47"] .pcb-guide-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 8px auto;
  padding: 9px 14px;
  border: 1px solid var(--pcb-copper);
  border-radius: 7px;
  color: var(--pcb-white);
  text-decoration: none;
  background: rgba(3,35,14,.8);
}
html[data-skin="pcb47"] .pcb-guide-link:hover { border-color: var(--pcb-led); box-shadow: 0 0 0 2px rgba(0,255,65,.18); }
html[data-skin="pcb47"] .pcb-guide { max-width: 820px; margin: 0 auto; padding: 24px 0 40px; }
html[data-skin="pcb47"] .pcb-guide .panel { max-width: none; margin: 16px 0; }
html[data-skin="pcb47"] .pcb-guide .swatch-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:10px; }
html[data-skin="pcb47"] .pcb-guide .swatch { min-height:76px; padding:12px; border:1px solid rgba(245,245,245,.28); border-radius:7px; display:flex; flex-direction:column; justify-content:end; box-shadow:inset 0 1px rgba(255,255,255,.18); }
html[data-skin="pcb47"] .pcb-guide .specimen { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
html[data-skin="pcb47"] .pcb-guide .type-led { color:var(--pcb-led); font-size:clamp(25px,7vw,38px); font-weight:800; letter-spacing:-.06em; text-shadow:0 0 10px rgba(0,255,65,.2); }
html[data-skin="pcb47"] .pcb-guide code,
html[data-skin="pcb47"] .pcb-guide pre { color:#fff; background:#031a0b; border:1px solid var(--pcb-copper); border-radius:6px; padding:10px; white-space:pre-wrap; overflow-wrap:anywhere; }
html[data-skin="pcb47"] .pcb-guide .pcb-switch-demo { display:inline-flex; align-items:center; gap:12px; }
html[data-skin="pcb47"] .pcb-guide .pcb-switch { width:38px; height:48px; display:inline-block; position:relative; border:1px solid #f3c4b8; border-radius:7px; background:linear-gradient(145deg,#B20000,#790000); box-shadow:inset 0 2px 3px #ffffff33,0 3px 0 #260000; }
html[data-skin="pcb47"] .pcb-guide .pcb-switch::after { content:""; position:absolute; width:8px; height:27px; top:7px; left:14px; background:#fff; border:1px solid #ddd; border-radius:3px; transform:rotate(-22deg); box-shadow:1px 2px 2px #0008; }
html[data-skin="pcb47"] .pcb-guide .pcb-components { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
html[data-skin="pcb47"] .pcb-guide .pcb-led { display:inline-block; width:11px; height:11px; border-radius:50%; background:var(--pcb-led); box-shadow:0 0 10px rgba(0,255,65,.8); }
html[data-skin="pcb47"] .pcb-guide .trace-sample { min-height:64px; border:1px solid var(--pcb-copper); border-radius:6px; background:linear-gradient(90deg,transparent 0 12%,var(--pcb-copper) 12% 13%,transparent 13% 40%,var(--pcb-copper) 40% 41%,transparent 41%),radial-gradient(circle at 12% 50%,var(--pcb-copper-light) 0 5px,transparent 6px),linear-gradient(135deg,#0d6a2a,#042511); }
@media (max-width: 600px) {
  html[data-skin="pcb47"] .app { padding-left: 18px; padding-right: 18px; }
  html[data-skin="pcb47"] .topbar { height: 76px; }
  html[data-skin="pcb47"] .mode-card { min-height: 98px; padding: 17px 14px; gap: 14px; }
  html[data-skin="pcb47"] .mode-card strong { font-size: 16px; line-height:1.35; }
  html[data-skin="pcb47"] .mode-card small { font-size: 11px; line-height:1.5; }
  html[data-skin="pcb47"] .section-title { align-items:flex-start; gap:10px; }
  html[data-skin="pcb47"] .section-title > span { max-width:105px; text-align:right; }
  html[data-skin="pcb47"] .panel { padding: 23px 18px; }
  html[data-skin="pcb47"] .panel h1 { font-size: 28px; }
  html[data-skin="pcb47"] .home-tools { flex-wrap:wrap; }
  html[data-skin="pcb47"] .home-tools > * { min-width:calc(50% - 6px); }
  html[data-skin="pcb47"] .home-tools .secondary { min-height:50px; padding:11px 8px; font-size:11px; }
  html[data-skin="pcb47"] .pcb-guide { padding-top:14px; }
}
@media (max-width: 360px) {
  html[data-skin="pcb47"] .app { padding-left:14px; padding-right:14px; }
  html[data-skin="pcb47"] .mode-card { gap:10px; padding:15px 11px; }
  html[data-skin="pcb47"] .mode-card#mode-duo46 .mode-number,
  html[data-skin="pcb47"] .mode-card#mode-solo46 .mode-number { flex-basis:38px; width:38px; }
  html[data-skin="pcb47"] .mode-card#mode-duo46 .mode-number::after,
  html[data-skin="pcb47"] .mode-card#mode-solo46 .mode-number::after { left:15px; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-skin="pcb47"] *, html[data-skin="pcb47"] *::before, html[data-skin="pcb47"] *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}

/* Pont de cascade v47 : certains thèmes historiques ciblent les écrans par ID. Ces règles visuelles, placées en dernier, les harmonisent sans toucher au DOM ni aux interactions. */
html[data-skin="pcb47"] .app .topbar { background: linear-gradient(90deg,rgba(4,42,18,.96),rgba(5,53,22,.86)) !important; border-color:rgba(196,154,0,.76) !important; }
html[data-skin="pcb47"] .app .brand,
html[data-skin="pcb47"] .app .version,
html[data-skin="pcb47"] .app .brand span { color:#F5F5F5 !important; }
html[data-skin="pcb47"] .app .brand small,
html[data-skin="pcb47"] .app .section-title > span,
html[data-skin="pcb47"] .app .eyebrow,
html[data-skin="pcb47"] .app footer > span { color:#edc84f !important; }
html[data-skin="pcb47"] .app #settings-trigger {
  color:#F5F5F5 !important; border:1px solid #C49A00 !important; border-radius:50% !important;
  background:linear-gradient(145deg,#0d6a2a,#042511) !important; box-shadow:0 4px 0 #020b06,inset 0 1px 0 #ffffff33 !important;
}
html[data-skin="pcb47"] .app #settings-trigger svg { fill:none !important; stroke:#F5F5F5 !important; }
html[data-skin="pcb47"] .app #settings-trigger svg path,
html[data-skin="pcb47"] .app #settings-trigger svg circle { fill:none !important; stroke:#F5F5F5 !important; }
html[data-skin="pcb47"] .app :is(.panel,.mode-card,.universe,.score-item,.word-card,.lock-art,.sound-controls,.stat-pill,.link-card,.settings-dialog,#bank-panel,#taboo-paused,#relay-wait,.tl24-card,.cl26-card,.secret-card,.mini-card) {
  color:#F5F5F5 !important;
  background-color:rgba(5,47,20,.97) !important;
  background-image:
    radial-gradient(circle at 12px 12px,#04160b 0 2.5px,#C49A00 3px 4.1px,transparent 4.6px),
    radial-gradient(circle at calc(100% - 12px) 12px,#04160b 0 2.5px,#C49A00 3px 4.1px,transparent 4.6px),
    radial-gradient(circle at 12px calc(100% - 12px),#04160b 0 2.5px,#C49A00 3px 4.1px,transparent 4.6px),
    radial-gradient(circle at calc(100% - 12px) calc(100% - 12px),#04160b 0 2.5px,#C49A00 3px 4.1px,transparent 4.6px),
    linear-gradient(145deg,rgba(15,108,43,.26),rgba(3,38,16,.32)) !important;
  border:1px solid rgba(196,154,0,.88) !important;
  border-radius:15px !important;
  box-shadow:0 5px 0 rgba(0,0,0,.72),0 12px 22px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.10) !important;
}
html[data-skin="pcb47"] .app :is(.panel,#bank-panel,.settings-dialog) { border-width:2px !important; background-color:rgba(4,42,17,.98) !important; }
html[data-skin="pcb47"] .app :is(.mode-card.featured,.universe.civil) {
  color:#F5F5F5 !important; background-color:#064018 !important;
  background-image:radial-gradient(circle at 12px 12px,#04160b 0 2.5px,#C49A00 3px 4.1px,transparent 4.6px),linear-gradient(145deg,#0b6025,#043215 80%) !important;
  border-color:#edc84f !important;
}
html[data-skin="pcb47"] .app :is(.mode-card,.universe,.primary,.secondary,.file-label,.responses button,.sound-controls button,.audio-settings-trigger,#connect-devices,#taboo-pause,.link-card button,.link-device,#link-disconnect) {
  color:#F5F5F5 !important; background-color:#064019 !important;
  background-image:linear-gradient(145deg,rgba(16,108,43,.36),rgba(4,38,16,.65)) !important;
  border:1px solid #C49A00 !important; border-radius:9px !important;
  box-shadow:0 4px 0 #020b06,inset 0 1px 0 rgba(255,255,255,.12) !important;
}
html[data-skin="pcb47"] .app .primary,
html[data-skin="pcb47"] .app .taboo-buttons .danger {
  color:#fff !important; background-color:#8d0000 !important;
  background-image:linear-gradient(145deg,#B20000,#8d0000 78%) !important;
  border-color:#edc84f !important;
}
html[data-skin="pcb47"] .app :is(.mode-card,.universe,.primary,.secondary,.responses button):active {
  transform:translateY(2px) !important; box-shadow:inset 0 2px 7px rgba(0,0,0,.62),0 0 0 2px rgba(91,207,255,.78) !important;
}
html[data-skin="pcb47"] .app :is(.mode-card,.universe,.primary,.secondary,.responses button):hover { border-color:#edc84f !important; }
html[data-skin="pcb47"] .app :is(h1,h2,h3,.hero h1,.section-title h2,.mode-players46 h1) { color:#00FF41 !important; }
html[data-skin="pcb47"] .app .hero h1 em { color:#F5F5F5 !important; }
html[data-skin="pcb47"] .app :is(p,.help,.mode-card small,.score-item small,.link-note,.link-pane p,.link-pane small,footer p,footer summary,.version) { color:#d7e2d7 !important; }
html[data-skin="pcb47"] .app :is(.mode-card strong,.universe strong,.mode-players46 strong,.brand,.text-button,label,summary,.gamebar,.word,.link-card h2,.link-card h3) { color:#F5F5F5 !important; }
html[data-skin="pcb47"] .app :is(.mode-number,.arrow,.mode-card .arrow,.mode-card.featured .mode-number,.mode-card.featured .arrow) { color:#00FF41 !important; }
html[data-skin="pcb47"] .app :is(.mode-card#mode-duo46 .mode-number,.mode-card#mode-solo46 .mode-number) {
  position:relative !important; display:grid !important; place-items:center !important; flex:0 0 42px !important;
  width:42px !important; height:50px !important; overflow:hidden !important; border:1px solid #f3c4b8 !important;
  border-radius:8px !important; background:linear-gradient(145deg,#B20000 0%,#900000 55%,#710000 100%) !important;
  color:transparent !important; font-size:0 !important; opacity:1 !important;
  box-shadow:inset 0 2px 3px rgba(255,255,255,.22),inset 0 -4px 6px rgba(0,0,0,.35),0 3px 0 #260000 !important;
}
html[data-skin="pcb47"] .app :is(.mode-card#mode-duo46 .mode-number,.mode-card#mode-solo46 .mode-number)::before { content:"I / O" !important; position:absolute !important; inset:auto 0 4px !important; color:#fff !important; font:700 6px/1 monospace !important; text-align:center !important; }
html[data-skin="pcb47"] .app :is(.mode-card#mode-duo46 .mode-number,.mode-card#mode-solo46 .mode-number)::after {
  content:"" !important; position:absolute !important; top:7px !important; left:17px !important; width:8px !important; height:27px !important;
  border:1px solid #fff !important; border-radius:3px !important; background:linear-gradient(90deg,#e8e8e8,#fff 55%,#c8c8c8) !important;
  box-shadow:1px 2px 2px rgba(0,0,0,.55) !important; transform:rotate(-22deg) !important; transform-origin:50% 88% !important; transition:transform .14s ease !important;
}
html[data-skin="pcb47"] .app :is(.mode-card#mode-duo46,.mode-card#mode-solo46):is(:hover,:active) .mode-number::after { transform:rotate(22deg) !important; }
html[data-skin="pcb47"] .app :is(.mode-card:not(#mode-duo46):not(#mode-solo46) .mode-number,#mode-player-options46 .mode-number) {
  min-width:36px !important; min-height:36px !important; border:1px solid #C49A00 !important; border-radius:7px !important;
  background:#073817 !important; color:#00FF41 !important; box-shadow:inset 0 1px 0 #ffffff22 !important;
}
html[data-skin="pcb47"] .app :is(input,select,textarea,.link-pane input:not([type=checkbox]),.link-pane textarea) {
  color:#F5F5F5 !important; background:#031a0b !important; border:1px solid #C49A00 !important;
  border-radius:8px !important; box-shadow:inset 0 3px 8px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.08) !important;
}
html[data-skin="pcb47"] .app :is(input::placeholder,textarea::placeholder) { color:#b4c7b6 !important; opacity:1 !important; }
html[data-skin="pcb47"] .app .word-card,
html[data-skin="pcb47"] .app .lock-art { background-color:#073817 !important; background-image:radial-gradient(circle at 12px 12px,#04160b 0 2.5px,#C49A00 3px 4.1px,transparent 4.6px),linear-gradient(145deg,#0c682a,#042e14) !important; }
html[data-skin="pcb47"] .app :is(.category-pill,.word-card > span,.timer-row strong,.score-item b,#taboo-countdown .countdown-number) { color:#00FF41 !important; }
html[data-skin="pcb47"] .app footer { border-color:rgba(196,154,0,.72) !important; color:#F5F5F5 !important; }
html[data-skin="pcb47"] .app .pcb-guide-link { color:#F5F5F5 !important; background:#042511 !important; border:1px solid #C49A00 !important; }

/* Pictogrammes de modes v47 : sept dessins SVG distincts, sérigraphie claire et nœuds cuivre. */
html[data-skin="pcb47"] .app .mode-icon47 {
  display:grid !important; place-items:center !important; flex:0 0 46px !important;
  width:46px !important; height:46px !important; padding:0 !important;
  border:1px solid #C49A00 !important; border-radius:9px !important;
  background:linear-gradient(145deg,#0b6327,#042b13) !important;
  color:#F5F5F5 !important; box-shadow:inset 0 1px 0 #ffffff25,0 2px 0 #020b06 !important;
}
html[data-skin="pcb47"] .app .mode-icon47 svg { display:block !important; width:33px !important; height:33px !important; overflow:visible !important; }
html[data-skin="pcb47"] .app .mode-icon47 svg g { stroke:#F5F5F5 !important; }
html[data-skin="pcb47"] .app .mode-icon47 svg > circle,
html[data-skin="pcb47"] .app .mode-icon47 svg > path { stroke:#edc84f; }
html[data-skin="pcb47"] .app .mode-icon47 svg circle[fill="#edc84f"] { fill:#edc84f !important; }
html[data-skin="pcb47"] .app .mode-card#mode-duo46 .mode-icon47,
html[data-skin="pcb47"] .app .mode-card#mode-solo46 .mode-icon47 {
  position:relative !important; flex:0 0 54px !important; width:54px !important; height:50px !important;
  padding-right:15px !important; overflow:hidden !important;
  border:1px solid #f3c4b8 !important; border-radius:8px !important;
  background:linear-gradient(145deg,#B20000 0%,#900000 55%,#710000 100%) !important;
  box-shadow:inset 0 2px 3px rgba(255,255,255,.22),inset 0 -4px 6px rgba(0,0,0,.35),0 3px 0 #260000 !important;
}
html[data-skin="pcb47"] .app .mode-card#mode-duo46 .mode-icon47 svg,
html[data-skin="pcb47"] .app .mode-card#mode-solo46 .mode-icon47 svg { position:relative !important; z-index:1 !important; width:30px !important; height:30px !important; }
html[data-skin="pcb47"] .app .mode-card#mode-duo46 .mode-icon47::before,
html[data-skin="pcb47"] .app .mode-card#mode-solo46 .mode-icon47::before {
  content:"I / O" !important; position:absolute !important; z-index:2 !important; right:2px !important; bottom:4px !important;
  width:14px !important; color:#fff !important; font:700 5px/1 monospace !important; letter-spacing:0 !important; text-align:center !important;
}
html[data-skin="pcb47"] .app .mode-card#mode-duo46 .mode-icon47::after,
html[data-skin="pcb47"] .app .mode-card#mode-solo46 .mode-icon47::after {
  content:"" !important; position:absolute !important; z-index:3 !important; top:7px !important; left:39px !important;
  width:7px !important; height:25px !important; border:1px solid #fff !important; border-radius:3px !important;
  background:linear-gradient(90deg,#e8e8e8,#fff 55%,#c8c8c8) !important; box-shadow:1px 2px 2px rgba(0,0,0,.55) !important;
  transform:rotate(-22deg) !important; transform-origin:50% 88% !important; transition:transform .14s ease !important;
}
html[data-skin="pcb47"] .app .mode-card#mode-duo46:hover .mode-icon47::after,
html[data-skin="pcb47"] .app .mode-card#mode-solo46:hover .mode-icon47::after,
html[data-skin="pcb47"] .app .mode-card#mode-duo46:active .mode-icon47::after,
html[data-skin="pcb47"] .app .mode-card#mode-solo46:active .mode-icon47::after { transform:rotate(22deg) !important; }
@media (max-width:360px) {
  html[data-skin="pcb47"] .app .mode-icon47 { flex-basis:42px !important; width:42px !important; height:42px !important; }
  html[data-skin="pcb47"] .app .mode-icon47 svg { width:30px !important; height:30px !important; }
  html[data-skin="pcb47"] .app .mode-card#mode-duo46 .mode-icon47,
  html[data-skin="pcb47"] .app .mode-card#mode-solo46 .mode-icon47 { flex-basis:50px !important; width:50px !important; }
  html[data-skin="pcb47"] .app .mode-card#mode-duo46 .mode-icon47::after,
  html[data-skin="pcb47"] .app .mode-card#mode-solo46 .mode-icon47::after { left:36px !important; }
}

/* Contraste des contrôles hérités qui ne portent pas les classes de carte standard. */
html[data-skin="pcb47"] .app .text-button {
  color:#F5F5F5 !important; background:#042511 !important; background-image:linear-gradient(145deg,#0b6025,#042e14) !important;
  border:1px solid #C49A00 !important; border-radius:8px !important; box-shadow:0 4px 0 #020b06,inset 0 1px 0 #ffffff22 !important;
}
html[data-skin="pcb47"] .app #rules-reader30-open {
  color:#F5F5F5 !important; background:#042511 !important; background-image:linear-gradient(145deg,#0b6025,#042e14) !important;
  border:1px solid #C49A00 !important; border-radius:12px !important; box-shadow:0 5px 0 #020b06,inset 0 1px 0 #ffffff22 !important;
}
html[data-skin="pcb47"] .app #rules-reader30-open :is(strong,small) { color:#F5F5F5 !important; }
html[data-skin="pcb47"] .app #rules-reader30-open .rules-reader30-icon svg { stroke:#edc84f !important; }
html[data-skin="pcb47"] .app #timesup label {
  color:#F5F5F5 !important; background:transparent !important; background-image:none !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
}
html[data-skin="pcb47"] .app #timesup .setup-progress {
  color:#F5F5F5 !important; background:#052d14 !important; background-image:linear-gradient(145deg,#0b6025,#042e14) !important;
  border:1px solid #C49A00 !important; box-shadow:inset 0 1px 0 #ffffff22 !important;
}
html[data-skin="pcb47"] .app #timesup .setup-progress span[aria-current="step"] {
  color:#F5F5F5 !important; background:#073817 !important; border:1px solid #C49A00 !important;
}
html[data-skin="pcb47"] .app #timesup .setup-progress span:not([aria-current="step"]) { color:#F5F5F5 !important; }

/* Arc tactile bleu : SVG éphémère autour du contrôle, uniquement sur activation. */
.pcb-arc-flash {
  position:fixed; z-index:9999; height:56px; pointer-events:none; opacity:0;
  transform:translate(-50%,-50%) scale(.62); filter:drop-shadow(0 0 5px rgba(89,207,255,.9));
  animation:pcb47-arc .30s steps(3,end) forwards;
}
.pcb-arc-flash svg { width:100%; height:100%; overflow:visible; }
.pcb-arc-flash path { fill:none; stroke:#59cfff; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.pcb-arc-flash .pcb-arc-core { stroke:#d9fbff; stroke-width:1.1; opacity:.92; }
@keyframes pcb47-arc {
  0% { opacity:0; transform:translate(-50%,-50%) scale(.62); }
  18% { opacity:1; transform:translate(-50%,-50%) scale(1.04); }
  64% { opacity:.82; transform:translate(-50%,-50%) scale(1); }
  100% { opacity:0; transform:translate(-50%,-50%) scale(1.08); }
}

/* Transition CRT : scanlines et tranche de glitch, sans filtre coûteux ni reflow. */
.pcb-crt-transition {
  position:fixed; z-index:9998; inset:0; pointer-events:none; opacity:0; mix-blend-mode:screen;
  background:repeating-linear-gradient(0deg,rgba(180,239,255,.18) 0 1px,transparent 1px 4px);
  animation:pcb47-crt .28s steps(4,end) forwards;
}
.pcb-crt-transition::before {
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent 0 16%,rgba(89,207,255,.08) 16.4%,transparent 17%,transparent 82%,rgba(255,255,255,.06) 82.4%,transparent 83%);
}
.pcb-crt-transition::after {
  content:""; position:absolute; left:-3%; top:43%; width:106%; height:13%;
  background:linear-gradient(90deg,transparent,rgba(89,207,255,.20) 24%,rgba(255,255,255,.12) 50%,rgba(89,207,255,.18) 76%,transparent);
  box-shadow:0 0 12px rgba(89,207,255,.18); animation:pcb47-glitch .24s steps(3,end) both;
}
@keyframes pcb47-crt {
  0% { opacity:0; }
  16% { opacity:.48; }
  38% { opacity:.16; }
  61% { opacity:.34; }
  100% { opacity:0; }
}
@keyframes pcb47-glitch {
  0% { transform:translateX(-1.4%) skewX(-1deg); }
  35% { transform:translateX(1.2%) skewX(.8deg); }
  72% { transform:translateX(-.5%) skewX(-.4deg); }
  100% { transform:translateX(0) skewX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .pcb-arc-flash, .pcb-crt-transition { display:none !important; animation:none !important; }
}
