/* GUESSRD RC14 · Soft Tactile (one design system across the real app)
   This file REPLACES board-v12.css. No Firebase/gameplay changes.
   Faces and soft coloured sidewalls, rather than black outlines or gloss sweeps. */
:root{
 --st-ink:#382518; --st-cream:#fff5e2; --st-cream-light:#fffaf1;
 --st-hair:#e4c6a1; --st-side:#d9ae83; --st-side-hot:#b63c2a;
 --st-side-gold:#d6a13f; --st-red:#ec5035; --st-yellow:#ffc95d;
 --st-small-r:12px; --st-radius:16px; --st-large-r:18px;
 --st-shadow:0 3px 0 var(--st-side),0 8px 16px rgba(32,15,7,.16),inset 0 1px 0 #fff9;
}
/* Avoid changing toggles, chip controls, cards that are not buttons and the tile-logo. */
html[data-guessrd-page] :is(.app,.lr-host,.lr-player,.lr-entry,.lr-join,.lr-modal,.admin-shell,.admin-workspace,.admin-sidebar,.admin-auth,.gdialog-card)
 :where(button,.btn,[role="button"]):where(:not(.brand):not(.ms-card):not([role="switch"]):not(.switch):not(.rx-switch):not(.rx-toggle):not(.kinetic-toggle):not(.lr-stage):not(.board-stack-wrap)){
 --st-side-current:var(--st-side);
 border:1px solid var(--st-hair)!important;
 border-radius:var(--st-radius)!important;
 box-shadow:0 3px 0 var(--st-side-current),0 8px 16px rgba(34,18,8,.15),inset 0 1px 0 rgba(255,255,255,.58)!important;
 text-decoration:none;
 transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,background-color .16s ease!important;
 -webkit-tap-highlight-color:transparent;
}
html[data-guessrd-page] :is(.app,.lr-host,.lr-player,.lr-entry,.lr-join,.lr-modal,.admin-shell,.admin-workspace,.admin-sidebar,.admin-auth,.gdialog-card)
 :where(button,.btn,[role="button"]):where(:not(.brand):not([role="switch"]):not(.switch):not(.rx-switch):not(.rx-toggle):not(.kinetic-toggle)):not(:disabled):hover{
 filter:brightness(1.045);
 box-shadow:0 4px 0 var(--st-side-current),0 10px 20px rgba(34,18,8,.16),inset 0 1px 0 #fffa!important;
}
html[data-guessrd-page] :is(.app,.lr-host,.lr-player,.lr-entry,.lr-join,.lr-modal,.admin-shell,.admin-workspace,.admin-sidebar,.admin-auth,.gdialog-card)
 :where(button,.btn,[role="button"]):where(:not(.brand):not([role="switch"]):not(.switch):not(.rx-switch):not(.rx-toggle):not(.kinetic-toggle)):not(:disabled):active{
 transform:translateY(2px)!important;
 filter:brightness(.98);
 box-shadow:0 1px 0 var(--st-side-current),0 4px 9px rgba(34,18,8,.11),inset 0 1px 3px #0001!important;
}
html[data-guessrd-page] button:disabled{opacity:.55;filter:saturate(.6);cursor:not-allowed}
html[data-guessrd-page] button:focus-visible{outline:3px solid #ffc354!important;outline-offset:3px}
/* Make unselected, light controls consistently readable. */
html[data-guessrd-page] .app :is(.rx-steps button,.rx-topline button,.rx-category-actions button,.rx-choice-row button,.rx-bottom-steps button,.rx-recovery button,.rx-game-center button,.rx-rules-layout button,.rx-finish-cta button){
 background-color:#fff1d8!important;color:var(--st-ink)!important;--st-side-current:#d6ad83;
}
/* Navigation: compact pill instead of heavy outlines. */
html[data-guessrd-page] .app .topnav .desktop-nav :is(button,a),
html[data-guessrd-page] .app .topnav .mobile-menu{
 border:1px solid #8d684e!important;border-radius:999px!important;
 box-shadow:0 2px 0 #1e110c,0 6px 12px #0003,inset 0 1px 0 #fff2!important;
}
html[data-guessrd-page] .app .topnav .desktop-nav .is-active{background:#ffcb6c!important;color:#372418!important;border-color:#ffc668!important}
html[data-guessrd-page] .app .topnav .mobile-menu{background:#ffce74!important;color:#382417!important}
/* Home: a balanced pair of colourful primary CTAs + a parchment secondary CTA. */
html[data-guessrd-page] .app-home .board-home-btn,
html[data-guessrd-page] .app-home .board-home-code{
 border:1px solid rgba(255,255,255,.2)!important;border-radius:var(--st-large-r)!important;
 box-shadow:0 5px 0 var(--st-side-current),0 13px 22px #0005,inset 0 1px 0 #fff7!important;
}
html[data-guessrd-page] .app-home .board-home-btn:hover,
html[data-guessrd-page] .app-home .board-home-code:hover{box-shadow:0 6px 0 var(--st-side-current),0 16px 24px #0006,inset 0 1px 0 #fff8!important;transform:translateY(-1px)}
html[data-guessrd-page] .app-home .board-home-btn:active,
html[data-guessrd-page] .app-home .board-home-code:active{transform:translateY(3px)!important;box-shadow:0 2px 0 var(--st-side-current),0 7px 14px #0004,inset 0 1px 0 #fff5!important}
html[data-guessrd-page] .app-home .board-home-btn:first-child{--st-side-current:#a62f20;background-color:#e84d33!important;color:#fff8ed!important}
html[data-guessrd-page] .app-home .board-home-btn:nth-child(2){--st-side-current:#c58d2b;background-color:#ffcc68!important;color:#37251b!important}
html[data-guessrd-page] .app-home .board-home-code{--st-side-current:#c99f7e;background-color:#fff2db!important;color:#3b281e!important}
/* The actual wizard has a vertical step rail, mode cards, segmented choices and bottom CTA. */
html[data-guessrd-page] .app-classic .rx-steps button,
html[data-guessrd-page] .app-live-setup .rx-steps button{
 border-radius:var(--st-small-r)!important;background:#fff5e4!important;border:1px solid #efdac0!important;color:#5c402c!important;
 --st-side-current:#e2c8a6;
 font-weight:850!important;
}
html[data-guessrd-page] .app-classic .rx-steps button.selected,
html[data-guessrd-page] .app-live-setup .rx-steps button.selected,
html[data-guessrd-page] .app-classic .rx-steps button[aria-current="step"],
html[data-guessrd-page] .app-live-setup .rx-steps button[aria-current="step"]{
 background:#ffd17c!important;border-color:#e6af58!important;color:#3b2617!important;
 --st-side-current:#d49c45;box-shadow:0 3px 0 var(--st-side-current),0 8px 16px #8b521d21,inset 0 1px 0 #fff9!important;
}
html[data-guessrd-page] .app :is(.rx-steps button.selected,.rx-steps button[aria-current="step"]) :is(span,small,strong,b,i){color:inherit!important;opacity:1!important;-webkit-text-fill-color:currentColor!important}
html[data-guessrd-page] .app-classic .rx-three button,
html[data-guessrd-page] .app-live-setup .rx-three button{
 border:1px solid #e0b88c!important;border-radius:17px!important;
 --st-side-current:#d2aa86;box-shadow:0 4px 0 var(--st-side-current),0 9px 16px #4420121f,inset 0 1px 0 #fffa!important;
 color:#402b1d!important;
}
html[data-guessrd-page] .app :is(.rx-three button.chosen,.rx-three button[aria-pressed="true"]){
 border:2px solid #e45f3e!important;--st-side-current:#bd6547;
 outline:2px solid #ffd584!important;outline-offset:1px!important;
 box-shadow:0 4px 0 var(--st-side-current),0 10px 18px #6525132c,inset 0 1px 0 #fffa!important;
 color:#372317!important;
}
html[data-guessrd-page] .app .rx-three button :is(strong,small,span){color:inherit!important;opacity:1!important;-webkit-text-fill-color:currentColor!important}
html[data-guessrd-page] .app .rx-three button small{opacity:.72!important}
html[data-guessrd-page] .app :is(.rx-choice-row button.selected,.rx-choice-row button[aria-pressed="true"],.rx-bottom-steps button:last-child,.rx-setup-actions .rx-primary){
 background-color:#f04f35!important;border-color:#ed684d!important;color:#fffaf2!important;--st-side-current:#b53c2b;
}
html[data-guessrd-page] .app :is(.rx-choice-row button.selected,.rx-choice-row button[aria-pressed="true"]) :is(span,strong,small){color:inherit!important}
html[data-guessrd-page] .app :is(.rx-choice-row button,.rx-category-actions button,.rx-bottom-steps button,.rx-topline button){border-radius:var(--st-small-r)!important}
html[data-guessrd-page] .app .rx-category.checked{border-color:#e2a962!important;box-shadow:0 3px 0 #d3a76c,0 7px 15px #9a592b23!important}
/* Gameplay: keep word card as hero, buttons as supporting game pieces. */
html[data-guessrd-page] .app-classic .rx-game .rx-play-buttons button{
 border:1px solid transparent!important;border-radius:var(--st-radius)!important;
 --st-side-current:#cca883;
 box-shadow:0 4px 0 var(--st-side-current),0 10px 17px #13070346,inset 0 1px 0 #fff6!important;
}
/* Map colours by action, never by button position (mobile layout can reorder). */
html[data-guessrd-page] .app-classic .rx-game .rx-play-buttons button.rx-good{background:#ffcb69!important;color:#402719!important;--st-side-current:#c49342}
html[data-guessrd-page] .app-classic .rx-game .rx-play-buttons button.rx-skip{background:#e95439!important;color:#fff8ed!important;--st-side-current:#ae3627}
html[data-guessrd-page] .app-classic .rx-game .rx-play-buttons button.rx-undo-visible{background:#fff2d8!important;color:#493022!important;--st-side-current:#c5a07b}
html[data-guessrd-page] .app-classic .rx-game .rx-play-buttons button.rx-pause-visible{background:#513429!important;color:#fff3df!important;--st-side-current:#2b1b14}
html[data-guessrd-page] .app-classic .rx-game .rx-play-buttons button:active{box-shadow:0 1px 0 var(--st-side-current),0 4px 8px #0003!important}
/* Other game control surfaces, including between-turn, win and in-game modal actions. */
html[data-guessrd-page] .app-classic .rx-game :is(.rx-game-center,.rx-finish-cta,.rx-between-actions,.rx-modal,.rx-play-foot) button{border-radius:var(--st-radius)!important}
html[data-guessrd-page] .app-classic .rx-game :is(.rx-primary,.rx-next,.rx-finish-cta button:last-child){background-color:#e95338!important;color:#fff6e9!important;--st-side-current:#ac3b29}
/* Launch button on step four is the primary action, not an ordinary neutral step. */
html[data-guessrd-page] .app-classic .rx-start-options button.rx-solid,
html[data-guessrd-page] .app-live-setup .rx-start-options button.rx-solid,
html[data-guessrd-page] .app :is(.rx-bottom-steps button.rx-solid,.rx-bottom-steps button:last-child:not(:first-child)){
 background:#ec5035!important;color:#fff7eb!important;border:1px solid #f17d61!important;
 --st-side-current:#b63c2a;
 box-shadow:0 4px 0 var(--st-side-current),0 9px 17px #3811082a,inset 0 1px 0 #fff6!important;
}
html[data-guessrd-page] .app-classic .rx-game :is(.rx-game-center button,.rx-between-actions button,.rx-finish-cta button){
 border-radius:var(--st-radius)!important;
}
/* Every actual control below the play card, including share and finish dialogs. */
html[data-guessrd-page] .app-classic .rx-game :is(.rx-game-toolbar button,.rx-inline-panel button,.rx-confirm-actions button,.rx-game-center button.rx-solid,.rx-awards button){
 border:1px solid #e9c99f!important;border-radius:var(--st-small-r)!important;
 background:#fff2dc!important;color:#503521!important;
 --st-side-current:#cba57f;
 box-shadow:0 3px 0 var(--st-side-current),0 7px 13px #1e0b0626,inset 0 1px 0 #fff8!important;
}
html[data-guessrd-page] .app-classic .rx-game :is(.rx-game-toolbar button.rx-finish-button,.rx-confirm-actions .rx-confirm-accept){
 background:#ffd9c9!important;color:#7b341f!important;border-color:#e9b49d!important;--st-side-current:#d29378;
}
html[data-guessrd-page] .app-classic .rx-game :is(.rx-game-center button.rx-solid,.rx-finish-cta,.rx-between-actions .rx-solid){
 background:#ed5135!important;color:#fff8ec!important;border-color:#ef775d!important;--st-side-current:#b43a27;
 box-shadow:0 4px 0 var(--st-side-current),0 9px 17px #1e0b0626,inset 0 1px 0 #fff6!important;
}
html[data-guessrd-page] .app-classic .rx-game .rx-game-toolbar .rx-game-code{
 border:1px solid #e7b77e!important;border-radius:var(--st-small-r)!important;box-shadow:0 2px 0 #cfa16e!important;
}
/* LIVE: same tactile language for players, presenters, between-turn and last-word decisions. */
html[data-guessrd-page="live"] :is(.lr-entry,.lr-join,.lr-player,.lr-host,.lr-modal,.lr-lastword-choices) button{
 border:1px solid #e4bf91!important;border-radius:var(--st-radius)!important;
 --st-side-current:#c9a176;
 box-shadow:0 4px 0 var(--st-side-current),0 9px 16px #16090436,inset 0 1px 0 #fff8!important;
}
html[data-guessrd-page="live"] :is(.lr-entry,.lr-join,.lr-player,.lr-host,.lr-modal,.lr-lastword-choices) button:not(:disabled):active{transform:translateY(2px)!important;box-shadow:0 1px 0 var(--st-side-current),0 3px 9px #1d0b0633!important}
html[data-guessrd-page="live"] :is(.lr-primary,.lr-host-danger,.lr-skip,.lr-lastword-team:first-child,.lr-modal-confirm){background-color:#ea5338!important;color:#fff6e6!important;border-color:#f57d5e!important;--st-side-current:#ae3926}
html[data-guessrd-page="live"] :is(.lr-correct,.lr-host-action,.lr-copy,.lr-lastword-team:nth-child(2)){background-color:#ffcb68!important;color:#362418!important;border-color:#ffe2a6!important;--st-side-current:#c18b36}
html[data-guessrd-page="live"] :is(.lr-undo,.lr-lastword-skip,.lr-presentation-tools button,.lr-modal-buttons button:not(.lr-modal-confirm)){background-color:#fff2db!important;color:#453021!important;border-color:#eed1aa!important;--st-side-current:#c6a17e}
html[data-guessrd-page="live"] :is(.lr-pause-btn,.lr-player-controls .lr-pause-btn){background-color:#50352a!important;color:#fff5e3!important;border-color:#785b47!important;--st-side-current:#281a13}
html[data-guessrd-page="live"] .lr-player .lr-answers button{border-radius:var(--st-radius)!important;min-height:55px!important}
html[data-guessrd-page="live"] .lr-header-tools .lr-presentation-tools button{border-radius:var(--st-small-r)!important}
html[data-guessrd-page="live"] :is(.lr-lastword-choices button,.lr-modal-buttons button){min-height:46px}
/* Admin is more functional, but should not look unrelated to the game. */
html[data-guessrd-page="admin"] .admin-shell :is(button,.btn,[role="button"]):not([role="switch"]):not(.kinetic-toggle){
 border:1px solid #e5c49d!important;border-radius:var(--st-small-r)!important;
 --st-side-current:#d5b18a;
 box-shadow:0 3px 0 var(--st-side-current),0 7px 12px #34170b1d,inset 0 1px 0 #fff9!important;
}
html[data-guessrd-page="admin"] .admin-shell :is(.btn.primary,.btn.resume-action,.admin-score-editor .btn.primary){background:#e95439!important;color:#fff6eb!important;border-color:#f07755!important;--st-side-current:#b33c28}
html[data-guessrd-page="admin"] .admin-shell :is(.btn.danger){background:#fff2e9!important;color:#bd4028!important;border-color:#ecc0ad!important;--st-side-current:#dbb2a3}
html[data-guessrd-page="admin"] .admin-shell .kinetic-tabs .btn[aria-selected="true"]{background:#ffcf79!important;color:#3c2719!important;border-color:#ebbd65!important;--st-side-current:#cfa25e}
html[data-guessrd-page="admin"] .admin-shell .kinetic-tabs .btn[aria-selected="false"]{background:#fff3e1!important;color:#74523d!important}
html[data-guessrd-page="admin"] .admin-shell :is(.btn,.kinetic-tabs button):not(:disabled):active{transform:translateY(2px)!important;box-shadow:0 1px 0 var(--st-side-current),0 3px 8px #0002!important}
/* Dialogs are portals attached outside the React app. */
html[data-guessrd-page] .gdialog-actions button{border:1px solid #e4c49f!important;border-radius:var(--st-radius)!important;box-shadow:0 3px 0 #cda987,0 8px 14px #2813082c,inset 0 1px 0 #fff8!important}
html[data-guessrd-page] .gdialog-actions button:last-child{--st-side-current:#b63d2b;box-shadow:0 4px 0 var(--st-side-current),0 9px 15px #3310062a!important}
html[data-guessrd-page] .gdialog-actions button:active{transform:translateY(2px)!important;box-shadow:0 1px 0 #cda987,0 4px 8px #0002!important}
/* Prevent text vanishing when classes flip during wizard steps. */
html[data-guessrd-page] .app .rx-steps button,
html[data-guessrd-page] .app .rx-steps button.selected,
html[data-guessrd-page] .app .rx-steps button:not(.selected){opacity:1!important;-webkit-text-fill-color:currentColor!important}
/* Smaller screens: tactile depth without increasing overall wizard height or scrolling. */
@media(max-width:720px){
 html[data-guessrd-page] .app .rx-steps button{min-height:42px!important;padding:7px 5px!important}
 html[data-guessrd-page] .app-home .board-home-btn{min-height:64px!important;border-radius:15px!important}
 html[data-guessrd-page] .app-classic .rx-game .rx-play-buttons button{min-height:50px!important;padding:9px 6px!important;border-radius:13px!important}
 html[data-guessrd-page="live"] .lr-player .lr-answers button{min-height:50px!important;padding:11px 7px!important}
 html[data-guessrd-page="admin"] .admin-shell :is(.btn,.kinetic-tabs button){min-height:38px!important}
}
@media(prefers-reduced-motion:reduce){html[data-guessrd-page] button,html[data-guessrd-page] .btn{transition:none!important}}
