:root { font-family: system-ui, sans-serif; color: #243047; background: #f3f5f8; }
* { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
button { padding: 0.55rem 1rem; border: 1px solid #bcc6d5; border-radius: 6px; cursor: pointer; background: #fff; }
button:disabled { opacity: 0.65; cursor: wait; }
input:focus-visible, button:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
.login-page { display: grid; min-height: 100vh; place-items: center; padding: 1rem; }
.login-card { width: min(100%, 380px); padding: 2rem; background: #fff; border-radius: 12px; border: 1px solid #dbe1e9; }
h1 { margin: 0; font-size: 1.6rem; }
.login-card > p { color: #55647b; }
form { display: grid; gap: 0.65rem; }
form > input { width: 100%; padding: 0.65rem; border: 1px solid #bcc6d5; border-radius: 6px; margin-bottom: 0.5rem; }
.remember { display: flex; gap: 0.4rem; align-items: center; margin-bottom: 0.5rem; }
form button { color: #fff; background: #245ac7; border-color: #245ac7; }
#status { min-height: 1.5em; font-size: 0.9rem; }
.game-page { height: 100vh; height: 100dvh; display: flex; flex-direction: column; overflow: hidden; }
.toolbar { display: flex; gap: 0.5rem; align-items: center; padding: 0.6rem 1rem; flex-wrap: wrap; }
.toolbar span { margin-right: auto; }
.game-page #status { margin: 0 1rem 0.25rem; }
#gameContainer { position: relative; flex: 1; min-height: 0; overflow: hidden; }
ruffle-player { position: absolute; left: 50%; top: 0; width: 760px; height: 570px; margin-left: -380px; transform-origin: top center; }
