:root{font-family:system-ui,sans-serif;color:#202633;background:#f2f4f8}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid #cbd3df;border-radius:6px;padding:.5rem .75rem;background:#fff;color:#263a59}button:hover{background:#edf2fa}button:disabled{opacity:.5;cursor:default}input{border:1px solid #cbd3df;border-radius:6px;padding:.65rem;width:100%}h1,h2,p{margin-top:0}.login{min-height:100vh;display:grid;place-items:center}.login form{background:#fff;padding:2rem;border-radius:10px;width:min(400px,90vw);box-shadow:0 4px 24px #1c2b4214}.login label{display:block;margin:1rem 0}.login input{display:block;margin-top:.4rem}.login button{background:#315ea8;color:#fff;border:0;width:100%}.layout{height:100vh;display:grid;grid-template-columns:280px 1fr}aside{background:#e7edf6;padding:1.2rem;display:flex;flex-direction:column;overflow:auto}aside header h1{margin-bottom:.25rem}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:2rem 0 1rem}.channel{display:flex;align-items:center;gap:.3rem;margin-bottom:.3rem}.channel.current{background:#d5e2f5;border-radius:6px}.channel-name{border:0;background:transparent;text-align:left;flex:1;overflow-wrap:anywhere}footer{margin-top:auto;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding-top:1rem;font-size:.85rem}.chat{display:flex;flex-direction:column;min-width:0;padding:1.5rem}.chat header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce2eb}.messages{flex:1;overflow:auto;padding:1.5rem 0}.messages article{margin-bottom:1.2rem}.messages article p{white-space:pre-wrap;overflow-wrap:anywhere;margin:.3rem 0}time,.muted{color:#748096;font-size:.85rem}.send{display:flex;gap:.5rem}.send button{background:#315ea8;color:#fff;border:0}.empty{margin:auto;color:#748096}.error{color:#a42323}@media(max-width:600px){.layout{grid-template-columns:140px 1fr}aside,.chat{padding:.7rem}.toolbar,.chat header{align-items:flex-start;flex-direction:column;gap:.5rem}.channel{flex-wrap:wrap}}
