/*
 * Shared room-entry primitives.
 * This file defines usability and responsive floors only. Game styles load
 * after it and remain responsible for artwork, composition and theme.
 */
[data-room-entry]{
  --room-entry-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  --room-entry-gap:clamp(20px,4vw,64px);
  --room-entry-focus:#d8ad58;
  width:100%;
}
[data-room-entry][data-entry-layout="split"]{display:grid;grid-template-columns:var(--room-entry-columns);gap:var(--room-entry-gap)}
[data-entry-story],[data-entry-access],[data-entry-form]{min-width:0}
[data-entry-modes]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
[data-entry-modes] button{min-width:0;min-height:44px;touch-action:manipulation}
[data-entry-form] input,[data-entry-form] select,[data-entry-form] button{max-width:100%}
[data-entry-form] input,[data-entry-form] select{min-height:44px}
[data-entry-form] button{min-height:44px;touch-action:manipulation}
[data-room-entry] :is(button,input,select):focus-visible{outline:3px solid var(--room-entry-focus);outline-offset:2px}
[data-room-entry][data-entry-pending] [data-entry-modes] button{pointer-events:none}
[data-entry-feedback][data-type="error"]{color:var(--room-entry-error,#b42318)}
@media(max-width:720px){
  [data-room-entry][data-entry-layout="split"]{grid-template-columns:minmax(0,1fr);gap:16px}
  [data-entry-story],[data-entry-access]{width:100%}
}
@media(max-width:380px){
  [data-entry-modes]{grid-template-columns:minmax(0,1fr)}
}
