/* Build48 — in-game material continuity, paint only.
   This sheet intentionally declares no position, dimensions, spacing, type metrics,
   border widths, transforms or animations. Table/console geometry remains untouched.
   Director finish, turn warnings, disabled controls and canvas-owned Wire retain owners. */
body.playing{
 --eg-leather:url('art/exchange-world/leather-v46.png');
 --eg-walnut:url('art/theme/table-walnut-b31.webp');
 --eg-leather-paint:linear-gradient(155deg,rgba(10,27,22,.66),rgba(2,12,10,.88)),var(--eg-leather);
 --eg-leather-size:auto,360px 360px;
 --eg-brass-paint:linear-gradient(145deg,var(--brass-hi),var(--brass) 45%,var(--brass-deep));
 --eg-rebate:inset 0 2px 5px rgba(0,0,0,.72),inset 0 -1px 0 rgba(232,200,122,.19);
}
/* The flat console receives the same fine leather as the menu. Its SVG arch and
   custom Director artwork retain their existing paths, fills and state lighting. */
@media(orientation:landscape){
 body.playing:not([data-turn-state='mine-trim']) #v2command:not([data-console-skin='director']){
  background-image:linear-gradient(180deg,rgba(232,200,122,.8),rgba(85,60,25,.95) 1px,rgba(2,10,8,.85) 3px,transparent 4px),linear-gradient(0deg,rgba(165,126,59,.8),transparent 3px),linear-gradient(155deg,rgba(10,27,22,.62),rgba(2,12,10,.86)),var(--eg-leather);
  background-size:auto,auto,auto,360px 360px;
 }
}
body.playing:not([data-turn-state='mine-trim']) #v2command:not([data-console-skin='director']) #v2end:not(:disabled):not(.trim):not(.discard){
 background-image:linear-gradient(145deg,#f1ddb0 0%,#dcc18a 22%,#c2a166 56%,#a78042 84%,#dfc18b 100%);
 box-shadow:inset 0 1px rgba(255,244,211,.9),inset 1px 0 rgba(245,222,172,.8),inset 0 -2px #715028,inset -1px 0 #876231,inset 0 0 0 2px rgba(88,57,18,.42),inset 0 0 0 3px rgba(255,230,180,.24);
}
/* Reactions sit on a small leather tray; portraits, state tokens and animation unchanged. */
body.playing #reactionMenu{
 background-image:linear-gradient(180deg,rgba(203,167,98,.48),transparent 2px),var(--eg-leather-paint);
 background-size:auto,auto,360px 360px;
 border-color:var(--brass-deep);
}
body.playing #reactionMenu .rxTile:not(.locked):not(.rxConversation){
 background-image:linear-gradient(155deg,rgba(9,29,22,.77),rgba(2,12,9,.93)),var(--eg-leather);
 background-size:auto,300px 300px;
 box-shadow:inset 0 1px rgba(232,200,122,.2),inset 0 -2px rgba(0,0,0,.75);
}
body.playing #reactionMenu .rxTile:not(.locked):hover{border-color:var(--brass-hi)}
/* History has its own opaque backing; the quiet in-table Wire is canvas-owned. */
body.playing.feed-open #v2feed{
 background-image:linear-gradient(180deg,rgba(232,200,122,.52),transparent 2px),linear-gradient(155deg,rgba(5,20,15,.78),rgba(1,10,7,.96)),var(--eg-leather);
 background-size:auto,auto,360px 360px;
 box-shadow:inset 0 1px rgba(245,222,173,.6),inset 1px 0 rgba(150,113,53,.55),inset -1px 0 rgba(0,0,0,.8),inset 0 -3px rgba(35,23,11,.86);
}
body.playing.feed-open #v2feedClose{
 background-image:var(--eg-leather-paint);background-size:var(--eg-leather-size);
 box-shadow:inset 0 1px rgba(232,200,122,.35),inset 0 -2px rgba(0,0,0,.75);
}
body.playing #v2feedItems .feeditem{
 background-image:linear-gradient(110deg,rgba(2,12,9,.93),rgba(7,22,17,.83));
 box-shadow:inset 0 1px rgba(232,200,122,.04),inset 0 -1px rgba(0,0,0,.42);
}
html:not(.floor-desk) body.playing #v2toastLane .v2toast:not(.explain):not(.audio){
 background-image:var(--eg-leather-paint);background-size:var(--eg-leather-size);
 box-shadow:inset 0 1px rgba(232,200,122,.3),inset 0 -2px rgba(0,0,0,.8);
}
/* Game dialogs borrow the case material without borrowing the menu's thicker geometry. */
body.playing #v2mbox{
 background-image:linear-gradient(180deg,rgba(91,57,27,.82),transparent 4px),linear-gradient(0deg,rgba(55,33,15,.94),transparent 4px),linear-gradient(155deg,rgba(10,27,22,.55),rgba(2,12,10,.81)),var(--eg-leather);
 background-size:auto,auto,auto,360px 360px;
 box-shadow:inset 0 1px rgba(232,200,122,.66),inset 1px 0 rgba(159,118,50,.65),inset 0 -3px rgba(34,20,9,.9),inset -1px 0 rgba(0,0,0,.7);
}
body.playing #v2mbox .rowGroup{
 background-image:linear-gradient(155deg,rgba(3,18,13,.73),rgba(1,10,7,.88)),var(--eg-leather);
 background-size:auto,360px 360px;
 box-shadow:var(--eg-rebate);
}
body.playing #v2mbox :is(.v2opt,.metaSecondary):not(.red):not(.metaDanger):not(:disabled):not([aria-disabled='true']):not(.gold){
 background-image:var(--eg-leather-paint);background-size:var(--eg-leather-size);
 box-shadow:inset 0 1px rgba(232,200,122,.28),inset 0 -2px rgba(0,0,0,.75);
}
body.playing #v2mbox :is(.v2opt.gold,.metaPrimary):not(.red):not(.metaDanger):not(:disabled):not([aria-disabled='true']){
 background-image:var(--eg-brass-paint);
 box-shadow:inset 0 1px rgba(255,244,210,.82),inset 1px 0 rgba(241,211,153,.6),inset 0 -2px rgba(93,62,20,.8),inset -1px 0 rgba(71,47,16,.6);
}
body.playing #v2mbox :is(input:not([type='range']):not([type='checkbox']),select){
 background-image:linear-gradient(rgba(1,10,7,.92),rgba(9,28,21,.88));
 box-shadow:var(--eg-rebate);
}
/* Deliberately no overrides for .pill.on, disabled/red controls, game card faces,
   command portraits, House/Director credentials, turn glows or charcoal table. */
/* Settings remains the same measured control, dressed like the Exchange's desk keys. */
body.playing #v2setB{
 background-image:linear-gradient(150deg,rgba(20,37,28,.52),rgba(2,12,9,.83)),var(--eg-leather);
 background-size:auto,300px 300px;
 box-shadow:inset 0 1px rgba(232,200,122,.74),inset 1px 0 rgba(183,144,74,.52),inset 0 -2px rgba(53,32,12,.9),inset -1px 0 rgba(0,0,0,.8),inset 0 0 0 2px rgba(113,82,34,.32);
}
