/* Shared materials and interaction states. Component dimensions stay in app.css. */
button, input[type=file]::file-selector-button {
    --stone-top:#eee3c9; --stone-mid:#b9b7a6; --stone-bottom:#d7cfb7;
    --button-ink:#32291e; --button-rim:#ac8449;
    appearance:none; cursor:pointer; color:var(--button-ink);
    border:2px solid #684626; border-radius:7px;
    background:
        radial-gradient(circle at 5px 5px, #f4d694 0 1px, #79562f 1.5px, transparent 2px),
        radial-gradient(circle at calc(100% - 5px) calc(100% - 5px), #eed093 0 1px, #79562f 1.5px, transparent 2px),
        repeating-linear-gradient(118deg, #fff1 0 1px, transparent 1px 7px),
        linear-gradient(170deg,var(--stone-top),var(--stone-mid) 65%,var(--stone-bottom));
    box-shadow:inset 0 0 0 1px var(--button-rim),inset 0 3px 1px #fff7,inset 0 -3px 2px #44382245,0 2px 0 #382518,0 3px 5px #23170c40;
    text-shadow:0 1px #fff8; font-weight:650;
    transition:box-shadow .12s,border-color .12s;
}
button.secondary { --stone-top:#dfddcf; --stone-mid:#aaa99c; --stone-bottom:#cac5b2; }
button:is([aria-selected=true],[aria-pressed=true]) {
    --stone-top:#fff1bc; --stone-mid:#c6a358; --stone-bottom:#e7c981;
    --button-rim:#ffe3a0; border-color:#8a5b20;
    box-shadow:inset 0 0 0 2px #fff0b0,inset 0 -4px 5px #87591860,0 2px 0 #513217;
}
button.button-danger { --stone-top:#ecd1b9; --stone-mid:#bf8571; --stone-bottom:#d9a18a; --button-ink:#4c201b; --button-rim:#ac6650; }
button:hover:enabled:not([aria-disabled=true]), input[type=file]:enabled::file-selector-button:hover {
    border-color:#b48943;
    box-shadow:inset 0 0 0 1px #f6d994,inset 0 3px 3px #fffa,inset 0 -3px 2px #62492e50,0 2px 0 #49321c,0 3px 7px #21140755;
}
button:active:enabled:not([aria-disabled=true]), input[type=file]:enabled::file-selector-button:active {
    box-shadow:inset 0 0 0 1px #99733e,inset 0 3px 5px #30251966,0 1px 0 #49321c;
}
button:disabled,button[aria-disabled=true],input[type=file]:disabled::file-selector-button {
    --stone-top:#cfccbd; --stone-mid:#b2aea0; --stone-bottom:#c4bfaf;
    --button-ink:#635d51; --button-rim:#aaa08b;
    cursor:default; opacity:.68; border-color:#82735e;
    box-shadow:inset 0 0 0 1px #ddd3bb,inset 0 1px #fff5,0 1px 0 #62533f;
}
button:focus-visible,input[type=file]:focus-visible::file-selector-button {
    outline:3px solid #f5cd6a; outline-offset:2px;
    box-shadow:inset 0 0 0 1px #684824,0 0 0 5px #3f2c1d;
}
/* Dark slate medallions keep the header's pale resource labels legible. */
.topbar button { --stone-top:#55564a; --stone-mid:#303d3d; --stone-bottom:#465252; --button-ink:#fff1cc; text-shadow:0 1px #181a17; }
.topbar .resource-button > span:last-child { color:#eedcba; }
.topbar .resource-button strong { color:#fff7df; }
.map-controls button, .game-popup > .popup-close, .advisor-speech button { font-family:Georgia,serif; font-weight:700; }
.advisor-speech button { border-radius:50%; font-size:20px; line-height:1; }
input[type=file]::file-selector-button { font:inherit; min-height:40px; padding:8px 12px; margin-right:10px; }
@media(prefers-reduced-motion:reduce) { button,input[type=file]::file-selector-button { transition:none; } }
@media(forced-colors:active) { button,input[type=file]::file-selector-button { border:2px solid ButtonText; } button:is([aria-selected=true],[aria-pressed=true]) { border:3px solid Highlight; } }
