html, body { margin: 0; padding: 0; width: 100vw; } html { overflow: hidden; } body { width: 100%; max-height: 100vh; display: flex; flex-direction: column; justify-content: end; height: 100%; position: fixed; overflow-y: hidden; -webkit-overflow-scrolling: touch; } body > div#messages { order: -1; display: grid; grid-template-columns: fit-content(120px) 1fr fit-content(80px); } .message { display: contents; } .message .nick { padding: 4px 8px; padding-left: 16px; grid-column: 1 / 2; overflow-x: hidden; text-wrap: nowrap; text-overflow: ellipsis; box-sizing: border-box; align-content: center; } .message .content { grid-column: 2 / 4; padding: 4px 8px; align-content: center; } .message:has(.actions) .content { grid-column: 2 / 3; } .message .actions { padding: 0 8px; display: flex; flex-direction: row; justify-content: end; align-items: center; grid-column: 3 / 4; align-content: center; } .message .actions > button, .message .actions > form button { background: none; border: none; } @media (pointer:fine) { .message .actions button { opacity: 0; pointer-events: none; } } .message:hover, .message:focus-within, .message:has(.actions dialog[popover]:popover-open) { & .actions button { opacity: 1; pointer-events: initial; cursor: pointer; } } .message.currentUser { & > * { /* background: #def6ff; */ } & > .nick { border-left: solid 6px #88dbfb; padding-left: 10px; } } .nickChange, .join, .part { grid-column: 1 / 4; opacity: .4; padding: 4px 16px; background: #d3d3d342; font-size: .95em; } #chat { order: 1; display: flex; flex-direction: row; align-items: center; padding: 0 8px; margin-top: 8px; } #chat > form { display: contents; } #chat > form input { flex: 1; padding: 8px; } #chat button { margin-left: 8px; border: none; background: none; } #footer { order: 2; padding: 4px 8px; display: flex; flex-direction: row; justify-content: end; & p { margin: 0; text-align: right; font-style: italic; } & > button { color: blue; background: none; border: none; margin-left: 16px; cursor: pointer; } } #settings_modal { height: 300px; padding: none; overflow: hidden; & > iframe { margin: 0; padding: 0; box-sizing: border-box; width: 100%; height: 100%; overflow: hidden; } } #settings { display: flex; flex-direction: column; align-items: stretch; justify-content: center; width: calc(100% - 16px); max-width: 600px; margin: 0 auto; position: initial; min-height: 100vh; } #settings form { display: contents; } #settings form h3 { margin: 0; margin-bottom: 8px; } #settings form label { display: block; margin-bottom: 8px; display: flex; flex-direction: column; align-items: stretch; }