:root{--bg:#f5f6f8;--fg:#1d2330;--muted:#6b7280;--card:#fff;--border:#dde1e7;--accent:#1f6feb;--ok:#1a7f37;--bad:#c62828;color:var(--fg);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0f1218;--fg:#e6e8eb;--muted:#9aa3ae;--card:#171b23;--border:#2a303b;--accent:#4c8dff}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2{margin:0}h2{font-size:1.2rem}button{background:var(--accent);color:#fff;cursor:pointer;font:inherit;border:0;border-radius:6px;padding:.5rem .9rem}button:disabled{opacity:.45;cursor:not-allowed}button.link{color:var(--accent);background:0 0;padding:.25rem .5rem}input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--fg);font:inherit;border-radius:6px;margin-top:.35rem;padding:.55rem}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.login{gap:1rem;width:min(360px,100%);display:grid}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--bad)}.spacer{flex:1}.topbar{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.75rem 16px;display:flex}.brand{font-size:1.1rem}main{max-width:1400px;margin:0 auto;padding:16px}.toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.notice{margin-bottom:1rem}.card+.grid{margin-top:1rem}.card h3{margin:0}.login-code{letter-spacing:.15em;-webkit-user-select:all;user-select:all;margin:.5rem 0;font:600 2rem/1.2 ui-monospace,Consolas,monospace}.notice pre{background:var(--bg);border-radius:6px;padding:.75rem;overflow-x:auto}.grid{border-collapse:collapse;background:var(--card);border-radius:10px;width:100%;overflow:hidden}.grid th,.grid td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .75rem}.grid th{text-transform:uppercase;color:var(--muted);font-size:.8rem}.dot{border-radius:50%;width:9px;height:9px;display:inline-block}.dot.on{background:var(--ok)}.dot.off{background:var(--muted)}.badge{border:1px solid var(--border);border-radius:999px;padding:.2rem .6rem;font-size:.85rem}.badge.conectado{color:var(--ok);border-color:var(--ok)}.badge.encerrada{color:var(--bad);border-color:var(--bad)}.screen{background:#000;border-radius:8px;place-items:center;display:grid;overflow:hidden}.screen canvas{cursor:default;outline:none;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 190px);display:block}.screen canvas:focus{box-shadow:0 0 0 2px var(--accent)}@media (width<=700px){.grid th:nth-child(4),.grid td:nth-child(4),.grid th:nth-child(5),.grid td:nth-child(5){display:none}}select{border:1px solid var(--border);background:var(--bg);color:var(--fg);font:inherit;border-radius:6px;padding:.45rem}.tabs{gap:.25rem;max-width:1400px;margin:0 auto;padding:.5rem 16px 0;display:flex}.tab{color:var(--muted);background:0 0;border-bottom:2px solid #0000;border-radius:0}.tab.on{color:var(--fg);border-bottom-color:var(--accent)}.banner{padding:.6rem 16px;font-size:.9rem}.banner.info{background:color-mix(in srgb, var(--accent) 12%, var(--bg))}.banner.warn{background:color-mix(in srgb, var(--bad) 14%, var(--bg))}.form-row{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.form-row label{flex:1;gap:.25rem;min-width:180px;display:grid}.form-row.inline{margin-bottom:1rem}.form-row.inline input{max-width:320px;margin-top:0}.session-body{gap:1rem;display:grid}.session-body.with-files{grid-template-columns:minmax(0,1fr) 360px}@media (width<=1000px){.session-body.with-files{grid-template-columns:1fr}}.files{flex-direction:column;gap:.5rem;max-height:calc(100vh - 190px);display:flex;overflow:hidden}.files .toolbar{margin-bottom:0}.crumbs{align-items:center;gap:.5rem;display:flex}.crumbs code{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;overflow:hidden}.file-list{border-top:1px solid var(--border);flex:1;overflow-y:auto}.file-row{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.file-row>span:first-child,.file-row>button:first-child{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;overflow:hidden}.transfers{border-top:2px solid var(--border);max-height:180px;overflow-y:auto}label.button{background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:.4rem .8rem;font-size:.9rem}label.button.disabled{opacity:.45;cursor:not-allowed}
