header{display:flex;gap:.8em;align-items:center;padding:.6em 1em;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;flex-wrap:wrap}
header h1{font-size:1.05em;margin:0}header select{width:auto}
nav{display:flex;gap:.3em;flex-wrap:wrap;padding:.5em 1em}nav button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
main{padding:0 1em 3em}
.login{max-width:340px;margin:12vh auto;padding:1.2em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.7em}
.room h3{margin:0 0 .3em;font-size:1.1em}.room .acts{display:flex;flex-wrap:wrap;gap:.3em;margin-top:.5em}.room .acts button{font-size:.8em;padding:.3em .6em}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.8em;align-items:start}
.col h3{margin:.2em 0 .5em;font-size:.95em;color:var(--mute);text-transform:uppercase;letter-spacing:.04em}
.task{margin-bottom:.6em}.task .acts{display:flex;flex-wrap:wrap;gap:.3em;margin-top:.5em}.task .acts button,.task select{font-size:.8em;padding:.3em .5em;width:auto}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.4em .5em;border-bottom:1px solid var(--line);vertical-align:top}
dialog{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);max-width:min(480px,92vw)}
dialog::backdrop{background:rgba(0,0,0,.4)}
.floor{margin:1em 0 .4em;font-weight:600}
.room .label{font-size:.78em;color:var(--mute);margin:-.2em 0 .35em}
.users td{vertical-align:middle}.users td button{font-size:.8em;padding:.3em .55em;margin:.1em}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.2em .8em}
.props{display:flex;gap:.8em;flex-wrap:wrap;margin-top:.3em}.props label{display:flex;gap:.3em;align-items:center;color:var(--ink);font-size:.95em;margin:0}.props input{width:auto}
@media (max-width:600px){header{gap:.4em}main{padding:0 .6em 3em}.cols{grid-template-columns:1fr}}
