/* TAJ SIGNATURE / unified mobile-first release polish */
:root{--taj-paper:#f9f2e2;--taj-bronze:#aa7936;--taj-ring:#eed49a;--taj-calm:#b4c4d3}
html{-webkit-text-size-adjust:100%}body{overflow-x:hidden}a{color:#f7d99a}button,a,input,select{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}a:focus-visible{outline:3px solid #ffe1a4;outline-offset:3px}
.header,.top{position:relative;overflow:hidden}.header:after,.top:after{content:'';position:absolute;inset:auto 15% 0;height:1px;background:linear-gradient(90deg,transparent,#ffdc8f77,transparent)}
.taj-intro{box-shadow:inset 0 1px #fff2,0 18px 45px #0005}.taj-intro strong{letter-spacing:-.04em}.royal-brand{filter:drop-shadow(0 2px 1px #000) drop-shadow(0 0 12px #f3c46b33)}
.board-outer,.board-frame{background:linear-gradient(135deg,#f9dea0 0%,#745023 12%,#edc780 23%,#b6823b 41%,#f7dba0 56%,#805523 73%,#e7b865 91%,#fff0bb 100%)!important;box-shadow:0 16px 42px #000b,inset 0 0 0 1px #ffdf9890!important}
.board{background-color:#f6eedc!important}.board .cell{border-color:#5c563a20!important}.board .pawn{box-shadow:inset 0 2px 2px #fff8,inset 0 -4px 5px #0005,0 3px 8px #0009!important}
#boardStatus,#turnInfo{font-variant-numeric:tabular-nums}.player.current,.seat.active{position:relative}.player.current:before,.seat.active:before{content:'✦';color:#efcf8c;position:absolute;top:5px;left:8px;font-size:12px}
#roll:not(:disabled),#quick:not(:disabled){box-shadow:0 4px 18px #dfaa4955,inset 0 1px #fff8!important}.cta:hover:not(:disabled),.btn:hover:not(:disabled){filter:brightness(1.08)}
#gamearea .board-frame{width:100%;max-width:700px;margin-inline:auto}#gamearea .board{aspect-ratio:1;width:100%}
.pawn.clickable{animation:taj-select-glow .8s ease-in-out infinite alternate!important}
@keyframes taj-select-glow{from{outline-color:#ffeabc;filter:brightness(1)}to{outline-color:white;filter:brightness(1.22) drop-shadow(0 0 6px #fbe59f)}}
.taj-quality-strip{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;margin:0 0 10px;color:#d8c6a4;font-size:11px}.taj-quality-strip span{display:inline-flex;align-items:center;gap:6px;border:1px solid #b88d4d55;border-radius:999px;padding:5px 10px;background:#101d2b88}.taj-quality-strip span:before{content:'✦';color:#eccb88}
.taj-tabs{scroll-snap-type:x mandatory}.taj-tabs button{scroll-snap-align:center}.field{font-size:16px!important}
@media(max-width:760px){
  body{background-attachment:scroll!important}
  .shell,.app{padding-inline:6px!important}
  .top,.header{margin-bottom:7px!important}
  .dashboard{gap:7px!important}
  .play-wrap{padding:5px!important;border-radius:15px!important}
  .board-outer,.board-frame{padding:4px!important;border-radius:11px!important}
  .board{border-radius:5px!important}
  .panel{gap:7px!important}
  .panel .dice-card{order:-1}
  .panel .players-card{order:0}
  .panel .rules-card{order:2}
  .live{padding:3px 5px!important;margin-bottom:5px!important}
  .taj-tabs{margin-bottom:7px!important;gap:4px!important;padding:4px!important}
  .taj-tabs button{min-height:44px!important}
  .taj-intro{margin-bottom:9px!important}
  .room-grid{gap:5px!important}
  #gamearea .card{padding:7px!important}
  #gamearea .side{grid-template-columns:1fr!important}
  #gamearea .controls{gap:8px}
  #gamearea .board-frame{max-width:min(100%,calc(100dvh - 190px))!important}
  .pawn.clickable{outline-width:2px!important}
  .shopitem{min-height:155px!important}
  .taj-quality-strip{justify-content:center}
  .actions>.btn{min-height:48px}
}
@media(max-width:360px){.logo,.brand h1{font-size:17px!important}.taj-quality-strip{font-size:10px}.taj-quality-strip span{padding:4px 7px}.taj-intro strong{font-size:16px!important}}
@media(prefers-reduced-motion:reduce){.pawn.clickable{animation:none!important;outline:3px solid #ffe3a0!important}}

/* Final touch ergonomics: keep interactive targets usable on narrow phones. */
:where(button,.secondary,.cta,.taj-mode-link,.btn){min-height:44px}
:where(button,select,input,a):focus-visible{outline:3px solid #ffe3a3!important;outline-offset:2px}
:where(input,select){max-width:100%;min-width:0}
@media(max-width:420px){.top{gap:5px!important}.brand{min-width:0}.brand .sub{font-size:9px!important;letter-spacing:0}.taj-mode-link{white-space:nowrap;font-size:11px!important;padding-inline:8px!important}.players{gap:5px!important}.player{padding:7px 5px!important}.dicezone{gap:9px!important}.die{width:62px!important;height:62px!important;padding:9px!important}.card{padding:9px!important}}
@media(max-width:340px){.taj-quality-strip{display:none!important}.brand .royal-brand{width:32px;height:32px}}

/* Accessible alternate pawn controls; touch and screen reader friendly. */
.taj-move-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}
.taj-move-controls[hidden]{display:none!important}
.taj-move-button{min-height:48px!important;font-weight:700;border-color:#ccaa6e!important}
@media(max-width:380px){.taj-move-controls{gap:5px}.taj-move-button{font-size:12px;padding:8px 4px}}

/* QA 2026-11: settings card was squeezed into a half column on phones (select clipped, labels wrapping) */
@media(max-width:560px){.panel>.card{grid-column:1/-1}.panel .controls{grid-template-columns:repeat(2,minmax(0,1fr))}.panel .controls>*{min-width:0;white-space:normal}}
